<asp:GridView ID="gvAll" runat="server" AutoGenerateColumns = "false" Font-Names = "Arial" Font-Size = "11pt" AlternatingRowStyle-BackColor = "#C2D69B" HeaderStyle-BackColor = "green" AllowPaging ="true" OnPageIndexChanging = "OnPaging" DataKeyNames = "XXXXXXX" PageSize = "10" > <Columns> <asp:TemplateField> <HeaderTemplate> <asp:CheckBox ID="chkAll" runat="server" onclick = "checkAll(this);" /> </HeaderTemplate> <ItemTemplate> <asp:CheckBox ID="chk" runat="server" onclick = "Check_Click(this)"/> </ItemTemplate> </asp:TemplateField> <asp:BoundField ItemStyle-Width = "150px" DataField = "XYZ" HeaderText = "XYZ"/> <asp:BoundField ItemStyle-Width = "150px" DataField = "ABC" HeaderText = "ABC"/> <asp:BoundField ItemStyle-Width = "150px" DataField = "123" HeaderText = "123"/> </Columns> <AlternatingRowStyle BackColor="#C2D69B" /></asp:GridView><asp:HiddenField ID="hfCount" runat="server" Value = "0" /><asp:Button ID="btnDelete" runat="server" Text="Delete Checked Records" OnClientClick = "return ConfirmDelete();" OnClick="btnDelete_Click" />
private void BindGrid(){ string constr = ConfigurationManager .ConnectionStrings["conString"].ConnectionString; string query = "select * from Table1"; SqlConnection con = new SqlConnection(constr); SqlDataAdapter sda = new SqlDataAdapter(query, con); DataTable dt = new DataTable(); sda.Fill(dt); gvAll.DataSource = dt; gvAll.DataBind();}
private void GetData(){ ArrayList arr; if (ViewState["SelectedRecords"] != null) arr = (ArrayList)ViewState["SelectedRecords"]; else arr = new ArrayList(); CheckBox chkAll = (CheckBox)gvAll.HeaderRow .Cells[0].FindControl("chkAll"); for (int i = 0; i < gvAll.Rows.Count; i++) { if (chkAll.Checked) { if (!arr.Contains(gvAll.DataKeys[i].Value)) { arr.Add(gvAll.DataKeys[i].Value); } } else { CheckBox chk = (CheckBox)gvAll.Rows[i] .Cells[0].FindControl("chk"); if (chk.Checked) { if (!arr.Contains(gvAll.DataKeys[i].Value)) { arr.Add(gvAll.DataKeys[i].Value); } } else { if (arr.Contains(gvAll.DataKeys[i].Value)) { arr.Remove(gvAll.DataKeys[i].Value); } } } } ViewState["SelectedRecords"] = arr;}/*GetData is called in the Page Load event of the ASP.Net web page in the following way*/protected void Page_Load(object sender, EventArgs e){ if (IsPostBack) GetData(); BindGrid();}// setdata functionprivate void SetData(){ int currentCount = 0; CheckBox chkAll = (CheckBox)gvAll.HeaderRow .Cells[0].FindControl("chkAll"); chkAll.Checked = true; ArrayList arr = (ArrayList)ViewState["SelectedRecords"]; for (int i = 0; i < gvAll.Rows.Count; i++) { CheckBox chk = (CheckBox)gvAll.Rows[i] .Cells[0].FindControl("chk"); if (chk != null) { chk.Checked = arr.Contains(gvAll.DataKeys[i].Value); if (!chk.Checked) chkAll.Checked = false; else currentCount++; } } hfCount.Value = (arr.Count - currentCount).ToString(); }