Sunday, February 10, 2008

CheckBox in gridview with autopostback true

Sometimes we need to have checkboxes in the GridView control and we want that as soon as the Checkbox is clicked/checked the postback happens and we get the value from the first row in the GridView control.

This can be easily done by using the following code:
asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False" OnRowCommand="GridView1_RowCommand">
Columns>
asp:BoundField DataField="CategoryID"
HeaderText="CategoryID" />
asp:BoundField DataField="CategoryName"
HeaderText="CategoryName" />
asp:TemplateField HeaderText="Select">
ItemTemplate>
asp:CheckBox ID="CheckBox1"
AutoPostBack="true" runat="server"
OnCheckedChanged="CheckBox1_CheckedChanged1" />
/ItemTemplate>
/asp:TemplateField>
/Columns>
/asp:GridView>

And the code behind:
{
CheckBox checkbox = (CheckBox)sender;
GridViewRow row = (GridViewRow) checkbox.NamingContainer;
Response.Write(row.Cells[0].Text);
}

Ohh by the way when you click a different checkbox it will show you the new value but does not clear the old checkbox. You can make a simple method "ClearCheckboxSelection" which clears all the checkboxes.

Hope you find this example useful :)

No comments: