This is small example what i tried
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack) {
bindgv();
}
}
public void bindgv()
{
SqlDataAdapter dap = new SqlDataAdapter("select * from mytable", Con);
DataSet ds = new DataSet();
dap.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];
CheckBox c1 = (CheckBox)GridView1.Rows[e.RowIndex].FindControl("CheckBox1");
CheckBox c2 = (CheckBox)GridView1.Rows[e.RowIndex].FindControl("CheckBox2");
CheckBox c3 = (CheckBox)GridView1.Rows[e.RowIndex].FindControl("CheckBox3");
Label lblid = (Label)GridView1.Rows[e.RowIndex].FindControl("lblid");
updateMethod(lblid.Text, c1.Checked, c2.Checked, c3.Checked);
}
public void updateMethod(string id, bool c1, bool c2, bool c3)
{
using (SqlConnection con = new SqlConnection(myCon))
{
con.Open();
SqlCommand cmd = new SqlCommand("update mytable set c1= @c1value , c2=@c2value, c3= @c3value where id=@id", con);
cmd.Parameters.AddWithValue("@c1value", c1);
cmd.Parameters.AddWithValue("@c2value", c2);
cmd.Parameters.AddWithValue("@c3value", c3);
cmd.Parameters.AddWithValue("@id", id);
cmd.ExecuteNonQuery();
}
GridView1.EditIndex = -1;
bindgv();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bindgv();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
bindgv();
}
HTML MarkUp
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
onrowediting="GridView1_RowEditing"
onrowcancelingedit="GridView1_RowCancelingEdit"
onrowupdating="GridView1_RowUpdating">
<Columns>
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<asp:Label ID="lblid" runat="server" Text='<%# Bind("id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="checkbox">
<ItemTemplate>
<table>
<tr>
<td><asp:Label ID="Label2" runat="server" Text='<%# Bind("c1") %>'></asp:Label></td>
<td><asp:Label ID="Label5" runat="server" Text='<%# Bind("c2") %>'></asp:Label></td>
<td><asp:Label ID="Label4" runat="server" Text='<%# Bind("c3") %>'></asp:Label></td>
</tr>
<tr>
<td> <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("c1") %>' /></td>
<td><asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Bind("c2") %>' /></td>
<td><asp:CheckBox ID="CheckBox3" runat="server" Checked='<%# Bind("c3") %>' /></td>
</tr>
</table>
</ItemTemplate>
<EditItemTemplate>
<table>
<tr>
<td><asp:Label ID="Label2" runat="server" Text='<%# Bind("c1") %>'></asp:Label></td>
<td><asp:Label ID="Label5" runat="server" Text='<%# Bind("c2") %>'></asp:Label></td>
<td><asp:Label ID="Label4" runat="server" Text='<%# Bind("c3") %>'></asp:Label></td>
</tr>
<tr>
<td> <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("c1") %>' /></td>
<td><asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Bind("c2") %>' /></td>
<td><asp:CheckBox ID="CheckBox3" runat="server" Checked='<%# Bind("c3") %>' /></td>
</tr>
</table>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandName="Edit" Text="Edit"></asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True"
CommandName="Update" Text="Update"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False"
CommandName="Cancel" Text="Cancel"></asp:LinkButton>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
ScreenShot: