CheckBox Field:
must bound to a field of database and is read only.
CheckBox in Template Field: Can use as a rocord selector.
Sample with template field:
ASPX:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="SqlDataSource1"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:CheckBox ID="CheckBox1" runat="server" /> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="Id" HeaderText="Id" ReadOnly="True" SortExpression="Id" /> <asp:BoundField DataField="fname" HeaderText="fname" SortExpression="fname" /> <asp:BoundField DataField="lname" HeaderText="lname" SortExpression="lname" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [Table]"></asp:SqlDataSource> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
Code behind:
protected void Button1_Click(object sender, EventArgs e) { foreach (GridViewRow item in GridView1.Rows) { CheckBox chk = (CheckBox)item.FindControl("CheckBox1"); if (chk != null) { if (chk.Checked) { // process selected record Response.Write(item.Cells[1].Text + "<br>"); } } } }