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">

</asp:checkbox>
</itemtemplate>
</asp:templatefield>
</asp:boundfield>

And the code behind:

protected void CheckBox1_CheckedChanged1(object sender, EventArgs e)
{
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: