Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

ASP.Net gridview header checkbox select or deselect using server side

In this article, we will learn how to select all checkboxes of GridView row when Header Checkbox is selected/checked and deselect/uncheck header checkbox when any of row checkbox is deselected/unchecked using server side c# code.

Output:

When you select header checkbox then all the row checkboxes will get select as shown below.

When you will select any row checkbox then header checkbox will be unchecked.

In designer file:

In designer file, create a gridview control grdEmployee with required header and item checkbox as shown in code.


form id="form1" runat="server">
div align="center">
GridView ID="grdEmployee" runat="server" AutoGenerateColumns="False" AllowPaging="true"
ShowFooter="true" PageSize="5" BorderColor="SkyBlue">
HeaderStyle BackColor="#00A6DC" ForeColor="White" />

TemplateField>

CheckBox ID="chkHeader" runat="server" AutoPostBack="true"
OnCheckedChanged="chkHeader_CheckedChanged" >CheckBox>



CheckBox ID="chkRow" runat="server" AutoPostBack="true"
OnCheckedChanged="chkRow_CheckedChanged"> CheckBox>

TemplateField>
TemplateField HeaderText="Employee Id">

Label ID="lblEmpId" runat="server" Text=''>
Label>

TemplateField>
TemplateField HeaderText="Employee Name">

Label ID="lblEmpName" runat="server" Text=''>
Label>

TemplateField>
TemplateField HeaderText="Employee Address">

Label ID="lblEmpAddress" runat="server" Text=''>
Label>

TemplateField>

GridView>
div>
form>

Namespace used

Include the below Namespaces.


using System.Data;

Complete Code

On page load, bind gridview control using BindGrid() method from C# code.


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
grdEmployee.DataSource = BindGrid();
grdEmployee.DataBind();
}
}

public DataTable BindGrid()
{
//Creating DataTable
DataTable dt = new DataTable();
//adding Columns to DataTable
dt.Columns.Add("EmpId", typeof(Int32));
dt.Columns.Add("EmpName", typeof(string));
dt.Columns.Add("EmpAddress", typeof(string));
//Addding data to DataTable
dt.Rows.Add(1, "Rahul", "Delhi");
dt.Rows.Add(2, "John", "Mumbai");
dt.Rows.Add(3, "Ravi", "Chennai");
dt.Rows.Add(4, "Ram", "Kolkata");
return dt;

}

protected void chkHeader_CheckedChanged(object sender, EventArgs e)
{
CheckBox chkHeader = (CheckBox)grdEmployee.HeaderRow.FindControl("chkHeader");
if (chkHeader.Checked)
{
foreach (GridViewRow gvrow in grdEmployee.Rows)
{
CheckBox chkRow = (CheckBox)gvrow.FindControl("chkRow");
chkRow.Checked = true;
}
}
else
{
foreach (GridViewRow gvrow in grdEmployee.Rows)
{
CheckBox chkRow = (CheckBox)gvrow.FindControl("chkRow");
chkRow.Checked = false;
}
}

}

protected void chkRow_CheckedChanged(object sender, EventArgs e)
{
int count = 0;
int totalRowCountGrid = grdEmployee.Rows.Count;

CheckBox chkHeader = (CheckBox)grdEmployee.HeaderRow.FindControl("chkHeader");

foreach (GridViewRow gvrow in grdEmployee.Rows)
{
CheckBox chkRow = (CheckBox)gvrow.FindControl("chkRow");
if (chkRow.Checked)
{
count++;
}
}

if (count == totalRowCountGrid)
{
chkHeader.Checked = true;
}
else
{
chkHeader.Checked = false;
}

}


This post first appeared on ASPArticles, please read the originial post: here

Share the post

ASP.Net gridview header checkbox select or deselect using server side

×

Subscribe to Asparticles

Get updates delivered right to your inbox!

Thank you for your subscription

×