Grid View add Checkbox like below
<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="chkBxSelect" runat="server" />
</ItemTemplate>
<HeaderTemplate>
<asp:CheckBox ID="chkBxHeader" onclick="javascript:HeaderClick(this);" runat="server" />
</HeaderTemplate>
</asp:TemplateField>
<script type="text/javascript">
var TotalChkBx;
var Counter;
window.onload = function () {
TotalChkBx = parseInt('<%= this.GridviewID.Rows.Count %>');
Counter = 0;
}
function HeaderClick(CheckBox) {
var TargetBaseControl =
document.getElementById('<%= this.GridviewID.ClientID %>');
var TargetChildControl = "chkBxSelect";
var Inputs = TargetBaseControl.getElementsByTagName("input");
for (var n = 0; n < Inputs.length; ++n)
if (Inputs[n].type == 'checkbox' &&
Inputs[n].id.indexOf(TargetChildControl, 0) >= 0)
Inputs[n].checked = CheckBox.checked;
Counter = CheckBox.checked ? TotalChkBx : 0;
}
function ChildClick(CheckBox, HCheckBox) {
var HeaderCheckBox = document.getElementById(HCheckBox);
if (CheckBox.checked && Counter < TotalChkBx)
Counter++;
else if (Counter > 0)
Counter--;
if (Counter < TotalChkBx)
HeaderCheckBox.checked = false;
else if (Counter == TotalChkBx)
HeaderCheckBox.checked = true;
}
Insert Delete delete button for gridview outside
<asp:button id="btnDelete" runat="server" text="Delete" onclick="btnDelete_Click" xmlns:asp="#unknown">
string flagchecked = "0";
ArrayList arrriskid = new ArrayList();
// Select the checkboxes from the GridView control
for (int i = 0; i < GridviewID.Rows.Count; i++)
{
GridViewRow row = GridviewID.Rows[i];
bool isChecked = ((CheckBox)row.FindControl("chkBxSelect")).Checked;
if (isChecked)
{
flagchecked = "1";
string deleteid= ((Label)row.FindControl("itemteplatedeleteid")).Text;
arrriskid.Add(deleteid);
}
}
if (flagchecked == "1")
{
for (int jR = 0; jR < arrriskid.Count; jR++)
{
dt_Datatable = (DataTable)Session["dt_Datatable "];
if (dt_Datatable .Rows.Count > 0)
{
//use loop must reverse order its may helps to avoide error when deleting rows in dt_Datatable
int loopcount = dt_Datatable .Rows.Count - 1;
for (int j = loopcount; j >= 0; j--)
{
if (dt_Datatable.Rows[j]["DeleteID"].ToString() == arrriskid[jR].ToString())
{
dt_Datatable .Rows[j].Delete();
dt_Datatable .AcceptChanges();
}
}
}
Then Last bind gridview again from Datatable
G<pre lang="xml">GridviewID.DataSource = dt_<pre lang="xml">Datatable ;
GridviewID.DataBind();</pre></pre>