Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / web / ASP.NET

Example of gridview rowcommand on Button Click

4.80/5 (19 votes)
30 Mar 2013CPOL 266.3K   2.6K  
Example For Gridview RowCommand Event

Introduction

One of the most used controls in my projects is Gridview. Therefore, I thought of writing a tip which has been used in my projects frequently.

Background

Gridview displays the value of a data source in a table. Here, I am going to give an example of using an event called "RowCommand". The RowCommand is raised when a button, LinkButton or ImageButton is clicked in the Gridview Control.

Using the Code

The HTML part of the gridview is:

ASP.NET
<asp:GridView ID="gridMembersList" 
AutoGenerateColumns="False" GridLines="None" 
            runat="server"  
            onrowcommand="gridMembersList_RowCommand">
        <Columns>
        <asp:TemplateField HeaderText="User Name">
        <ItemTemplate>
            <asp:Literal ID="ltrlName" runat="server" 
            Text='<%# Eval("Name") %>'></asp:Literal>
            <asp:Literal ID="ltrlSlno" runat="server" Visible="False" 
                Text='<%# Eval("Id") %>'></asp:Literal>
        </ItemTemplate>
        </asp:TemplateField>
        
        <asp:TemplateField HeaderText="View More">
        <ItemTemplate>
            <asp:Button ID="btnViewmore"  
            CommandArgument="<%# ((GridViewRow) Container).RowIndex %>
            " CommandName="More" runat="server" Text="View More" />
        </ItemTemplate>
        </asp:TemplateField> 
        </Columns>
        </asp:GridView>  

In the HTML part , I have binded the values which have to be displayed on the page.

And in the code behind, I have used an XML to load the data to the gridview. When the button is clicked, the event verifies for the command name and command argument.

And, then, I have just alerted the name of the user in this example. Changes can be made according to the requirement.

C#
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string pathofxml = Server.MapPath("xml/MemberDetails.xml");
            DataSet ds = new DataSet();
            ds.ReadXml(pathofxml);
            gridMembersList.DataSource = ds;
            gridMembersList.DataBind();
        }
    } 
C#
protected void gridMembersList_RowCommand(object sender, GridViewCommandEventArgs e)
  {
       if (e.CommandName == "More")
       {
           int index = Convert.ToInt32(e.CommandArgument.ToString());
           Literal ltrlslno = (Literal)gridMembersList.Rows[index].FindControl("ltrlSlno");
           Literal ltrlName = (Literal)gridMembersList.Rows[index].FindControl("ltrlName");
           ScriptManager.RegisterStartupScript(this, this.GetType(),
           "Message", "alert('" + ltrlName.Text+ "');", true);
       }
   }

I hope this will be helpful for the beginner.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)