Ammar Asjad
Ammar Asjad

Reputation: 3000

how to write event of onrowcommand

I am new to c# so apologize if my way of asking is not correct.

I have added button in grid view now i want to perform some specific action against button coding in c#.. but i am unable to click on button that is why i am unable to write code against button event.

please tell me how to write code against button event in grid ???

Here is my coding :

 <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Button ID="btnDecline" runat="server" Text="Decline"  onrowcommand="decline" />
                    </ItemTemplate>
                </asp:TemplateField>

here is c# coding :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sherserve.BusinessLogicLayer;
using Sherserve.CustomTypeLayer;

namespace SherserveLeaveManagementSystem
{
    public partial class LMSAdminPanel : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                LMSManager leavestatus = new LMSManager();
                int emplid = Convert.ToInt32(Session["EmployeeID"]);
                List<EmployeeLeave> leaverecord = leavestatus.GetLeaveRecord(emplid);
                GridView1.DataSource = leaverecord;
                GridView1.DataBind();







            }
        }

        protected void GridView1_PageIndexchanging(object sender, GridViewPageEventArgs e)
        {

            LMSManager leavestatus = new LMSManager();
            int emplid = Convert.ToInt32(Session["EmployeeID"]);
            List<EmployeeLeave> leaverecord = leavestatus.GetLeaveRecord(emplid);
            GridView1.DataSource = leaverecord;
            GridView1.PageIndex = e.NewPageIndex;
            GridView1.DataBind();
        }

        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }


    }
}

i am new in c# please dont mind if my way of asking is long or not correct.

thanks

Upvotes: 3

Views: 205

Answers (2)

kbvishnu
kbvishnu

Reputation: 15630

Refer this for more http://www.dreamincode.net/forums/topic/184448-using-gridview-and-rowcommand-events/

protected void myGV_RowCommand(Object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "click1")
        {
            int index = Convert.ToInt32(e.CommandArgument); //get row number selected
            GridViewRow row = GridView1.Rows[index]; 
            Go ahead do something like above 

        }

        if (e.CommandName == "click2")
        {
            Do something cool ... 
        }
    }

Upvotes: 0

Gregor Primar
Gregor Primar

Reputation: 6805

Use commandname property like this (select, delete in this case):

<asp:GridView ID="EntityGridView" runat="server" DataKeyNames="Id" DataSourceID="EntityListDataSource"
    AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True" SkinID="GridViewSmall"
    OnRowCommand="EntityGridView_RowCommand" 
    OnPageIndexChanged="EntityGridView_PageIndexChanged"
    OnSorting="EntityGridView_Sorting">
    <Columns>
        <asp:TemplateField ItemStyle-CssClass="TemplateFieldTwoColumns">
            <ItemTemplate>
                <asp:ImageButton ID="btnView" runat="server" ToolTip="<% $resources:AppResource,Edit %>" SkinID="EditPage" CommandName="Select" CommandArgument='<%# Eval("Id") %>' />
                <asp:ImageButton ID="btnDelete" runat="server" ToolTip="<% $resources:AppResource,Delete %>" SkinID="DeletePage" OnClientClick="<%# GetDeleteConfirmation() %>" CommandName="Delete" CommandArgument='<%# Eval("Id") %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="Title" HeaderText="<% $resources:AppResource,Title %>" SortExpression="Title" />
    </Columns>
</asp:GridView>

And here is how you connect to event:

    protected void EntityGridView_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "Select")
        {
             //do something on select...                
        }
    }

Upvotes: 1

Related Questions