1
votes

by right my label1.text will be display by each clicks, however my label was fire during page load, and this is not what i want, so any idea can perform fire event per clicks?

gridview property

asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" OnRowDataBound="abcde"

link button that inside gridview

asp:LinkButton ID="lnkname" runat="server" Text='<%#Eval("movieTitle") %>' Width=500 CommandName="cmdLink">

code behind for link button

protected void abcde(object sender, GridViewRowEventArgs e)

{

    Label1.Text = ((LinkButton)e.Row.FindControl("lnkname")).Text;


}
3

3 Answers

1
votes

Problem is that whenever any click event occur in Gridview that time GridviewRowCommand will be fire..you just check that when you want to fire this event.its means during paging event also fire this event..thats y just check it out using [CommandName] like this

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowcommand.aspx

        string namec = e.CommandName.ToString();
        if (namec == "cmdLink")
        {
           //put your code  
        } 
0
votes

It sounds like you bind the gridview on page load event. Every time you bind the gridview, the onbound event will be fired:

protected void abcde(object sender, GridViewRowEventArgs e)

You can avoid that by checking postback in pageload before gridview databind:

if (!IsPostBack)
{
     //Gridview databind
}
0
votes

Change the Command Name of LinkButton to

CommandName="Select"

and use GridView1_SelectIndexChanged event First Get the Select Row

GridViewRow gvr =  new  GridView1.SelectedRow;

and FindControl of the row