Skip to main content

Checkbox inside GridView like Gmail


Checkbox inside GridView like Gmail



Even Users want to Check all of the Gridview CheckBox Column for some desired task like Delete, Select Records in GridView. In this Article I am going to describe CheckBox inside Gridview and functionality to check all checkbox in Gridview like Gmail.

I am using JavaScript to Check/UnCheck all CheckBox in GridView. I am using a sample example of Employee Record in Grid to delete the records.

There is a table Employee which I have used in the sample code.

Create Table Employee
(
    Emp_ID int identity(1,1),
    Emp_Name varchar(50),
   Salary money
)

ASPX CODE


<script type="text/javascript">
function SelectAllCheckboxes(chk)
{
    if(chk.type=="checkbox")
       var a=chk;
    State=a.checked;
    elm=a.form.elements;
    for(i=0;i<elm.length;i++)
       if(elm[i].type=="checkbox")
       {     
          if(elm[i].checked!=State)
            elm[i].click();
          else if(elm[i].checked==State)
            elm[i].click();      
       }
}

    </script>

<asp:Button ID="b1" runat="server" Text="DeleteAll" OnClick="b1_Click" />
<br/>

        <asp:GridView ID="GridView1" runat="server" AllowPaging="true" AutoGenerateColumns="false"
            DataKeyNames="Emp_ID" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowDeleting="GridView1_RowDeleting">
            <Columns>
                <asp:TemplateField>
                    <HeaderTemplate>
                        <input type="checkbox" id="chkAll" runat="server" onclick="javascript:SelectAllCheckboxes(this)" />
                    </HeaderTemplate>
                    <ItemTemplate>
                        <input type="checkbox" id="chkSelect" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Emp_ID" Visible="false" />
                <asp:TemplateField HeaderText="Employee ID">
                    <ItemTemplate>
                        <asp:Label ID="l1" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"Emp_ID")%>'>
                        </asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="t1" runat="server" ReadOnly="true" Text='<%DataBinder.Eval(Container.DataItem,"Emp_ID")%>'>
                        </asp:TextBox>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Employee Name">
                    <ItemTemplate>
                        <asp:Label ID="l2" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"Emp_Name")%>'>
                        </asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="t2" runat="server" Text='<%DataBinder.Eval(Container.DataItem,"Emp_Name")%>'>
                        </asp:TextBox>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Salary">
                    <ItemTemplate>
                        <asp:Label ID="l3" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"salary")%>'>
                        </asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="t3" runat="server" Text='<%DataBinder.Eval(Container.DataItem,"salary")%>'>
                        </asp:TextBox>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:CommandField ShowDeleteButton="true" DeleteText="Delete" HeaderText="DELETE" />
            </Columns>
        </asp:GridView>

ASPX.CS CODE

SqlConnection con = new SqlConnection("server=NEERAJ-PC;database=neeraj;uid=sa;pwd=sa");
    SqlCommand cmd;
    SqlDataAdapter da;
    DataSet ds;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            display();
    }
    public void display()
    {
        da = new SqlDataAdapter("select * from Employee", con);
        ds = new DataSet();
        da.Fill(ds);
        GridView1.DataSource = ds;
        GridView1.DataBind();
    }
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        display();
    }
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        bool isChecked = ((HtmlInputCheckBox)GridView1.Rows[e.RowIndex].FindControl("chkSelect")).Checked;
        if (isChecked)
        {
            string Emp_ID = ((Label)GridView1.Rows[e.RowIndex].FindControl("l1")).Text;
            int id = int.Parse(Emp_ID);
            cmd = new SqlCommand("delete from Employee where Emp_ID=" + id, con);
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
            GridView1.EditIndex = -1;
            display();
        }
    }
    protected void b1_Click(object sender, EventArgs e)
    {
        string ids = "";
        ids = GetSelectedIds();
        con.Open();
        SqlCommand cmd = new SqlCommand("delete from Employee where Emp_ID in(" + ids + ")", con);
        cmd.ExecuteNonQuery();
        display();

    }
    private string GetSelectedIds()
    {
        string ids = "";
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            GridViewRow row = GridView1.Rows[i];
            bool isChecked = ((HtmlInputCheckBox)row.FindControl
                ("chkSelect")).Checked;
            if (isChecked)
            {
                string s = ((Label)row.FindControl("l1")).Text;
                ids = ids + s + ",";
            }

        }
        return ids.Substring(0, ids.Length - 1);
    }


Now run the application and see the result as given below image





Powered by/ refrence from: http://www.dotnetfactor.com/Article/checkbox-inside-gridview-like-gmail-22.aspx

Comments

  1. Are you trying to make cash from your visitors via popup ads?
    In case you do, have you considered using Propeller Ads?

    ReplyDelete

Post a Comment

Popular posts from this blog

10 jQuery Custom Scrollbar Plugins

10 jQuery Custom Scrollbar Plugins If you ever wanted to add some custom scrollbars to your website, to scroll the contents and the default browser scrollbars just doesn’t match up with your design, than make sure you check this list of 10 jQuery custom scrollbar plugins. Hope you find the following information helpful. 1. jScrollPane – custom cross-browser scrollbars Kelvin Luck’s jScrollPane was originally developed in December 2006. It is a jQuery plugin which provides you with custom scrollbars which work consistently across all modern browsers. You can style the scrollbars using simple CSS and they degrade gracefully where JavaScript is disabled. 2. Plugin JQuery : Scrollbar This page is written in french so use Google’s translate service to translate this page to your preferred language. Download is available for the plugin.  The purpose of this plugin is to add a scrollbar to the item of your choice, to view any content which is larger than the size – vizibl...

List of Best and Worst practices for SEO

Keywords 1 Keywords in <title> tag This is one of the most important places to have a keyword because what is written inside the <title> tag shows in search results as your page title. The title tag must be short (6 or 7 words at most) and the the keyword must be near the beginning. +3 2 Keywords in URL Keywords in URLs help a lot - e.g. -  http://domainname.com/seo-services.html , where “SEO services” is the keyword phrase you attempt to rank well for. But if you don't have the keywords in other parts of the document, don't rely on having them in the URL. +3 3 Keyword density in document text Another very important factor you need to  check . 3-7 % for major keywords is best, 1-2 for minor. Keyword density of over 10% is suspicious and looks more like keyword stuffing, than a naturally written text. +3 4 Keywords in anchor text Also very important, especially for  the anchor text of inbound links , because if you have the...

(Solved) Failure sending mail in Godaddy Server

(Solved) Failure sending mail in Godaddy Server I know that this is an old thread.  At the same time, I worked on this problem for two weeks.  I wish that I had the final answer a couple of weeks ago! If you have shared hosting at GoDaddy.com, you need to use these credentials WHILE your are developing your application: In the namespaces you have to add using System.Net.Mail; or if you are not using any .cs file the you can insert namespace as <% @ Import Namespace ="System.Net.Mail" %> //for mail(from,to,subject,message) MailMessage msg = new MailMessage("frommailid@yourdomain.com", " tomailid@yourdomain.com ", "hello" , "your message"); SmtpClient smtp = new SmtpClient (); smtp . Host = "smtpout.secureserver.net" ; // Only works locally (development time) smtp . EnableSsl = false ; smtp . UseDefaultCredentials = false ; smtp . Credentials = new System . Net . NetworkCredential ( "...