Friday, 24 January 2014

GridView Multiple Delete By Jquery toggle or Without Postback

---------------------------- Add this script in head section------------
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script type="text/javascript">
        function toggleSelectionUsingHeaderCheckBox() {
            $("input[name$='chkChild']").each(function () {
                if ($("input[name$='chkHeader']").prop('checked')) {
                    $("input[name$='chkChild']").prop('checked', true);
                }
                else {
                    $("input[name$='chkChild']").prop('checked', false);
                }
            });
        }
        function toggleAll() {
            $("input[name$='chkChild']").change(function () {
                if ($("input[name$='chkChild']:checked").length == $("input[name$='chkChild']").length) {
                    $("input[name$='chkHeader']").prop('checked', true);
                }
                else {
                    $("input[name$='chkHeader']").prop('checked', false);
                }
            });
        }
        $(document).ready(function () {
            $("#<%=lbwthDelete.ClientID%>").click(function () {
                var totalSelected = $("input[name$='chkChild']:checked").length;
                if (totalSelected == 0) {
                    alert('No Row Selected');
                    return false;
                }
                else
                    return confirm(totalSelected + ' row(s) will be Deleted?');
            });
        });
    </script>------Add template field in Gridview Header Checkbox and child Chekbox------------------------
<asp:TemplateField>
  <HeaderTemplate>
      <asp:CheckBox ID="chkHeader" onClick="toggleSelectionUsingHeaderCheckBox();"
runat="server" />
  </HeaderTemplate>
  <ItemTemplate>
      <asp:CheckBox ID="chkChild" onClick="toggleAll();" runat="server" />
  </ItemTemplate>
</asp:TemplateField>

-----------------------Click Event get selected checkbox value and delete it---

protected void btnDelete_Click(object sender, EventArgs e)
    {
        List<string> listofEmployeeIdtoDelete = new List<string>();
        foreach (GridViewRow a in GridView1.Rows)
        {
            if (((CheckBox)a.FindControl("chkChild")).Checked)
            {
                string EmployeeID = ((Label)a.FindControl("lblEmployeeID")).Text;
                listofEmployeeIdtoDelete.Add(EmployeeID);
            }
        }
        if (listofEmployeeIdtoDelete.Count > 0)
        {
            lblMessage.ForeColor = System.Drawing.Color.Navy;
            foreach (string strEmployeeID in listofEmployeeIdtoDelete)
            {
                EmployeeDataAccessLayer.DeleteEmployee(Convert.ToInt32(strEmployeeID));
            }
            lblMessage.Text = listofEmployeeIdtoDelete.Count.ToString() + "row(s) Delete";
        }
        else
        {
            lblMessage.ForeColor = System.Drawing.Color.Red;
            lblMessage.Text = "No records selected to delete.";
        }
        bindgridview();
    }

No comments:

Post a Comment