GridViewRowCommand保持火

通过正确的我的label1.text将显示每次点击,但是我的标签在页面加载过程中被触发,这不是我想要的,所以任何想法都可以执行每次点击触发事件?

gridview属性

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

在gridview里面的链接按钮

asp:LinkBut​​ton ID =“lnkname”runat =“server”Text ='<%#Eval(“movieTitle”)%>'Width = 500 CommandName =“cmdLink”>

代码后面的链接按钮

protected void abcde(object sender,GridViewRowEventArgs e)

{

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


}

问题是,无论何时在Gridview中发生任何点击事件,那么时间GridviewRowCommand将会被fire ..你只是检查,当你想要触发这个event.its意味着在分页事件也引发这个事件..这就是检查出来使用[CommandName ] 喜欢这个

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  
        } 

这听起来像你在页面加载事件绑定gridview。 每次绑定gridview时,入站事件都会被触发:

protected void abcde(object sender,GridViewRowEventArgs e)

您可以通过在gridview数据绑定之前检查pageload中的回传来避免这种情况:

if (!IsPostBack)
{
     //Gridview databind
}

将LinkBut​​ton的命令名称更改为

CommandName="Select"

并使用GridView1_SelectIndexChanged事件首先获取选择行

GridViewRow gvr =  new  GridView1.SelectedRow;

和该行的FindControl

链接地址: http://www.djcxy.com/p/46781.html

上一篇: GridViewRowCommand keep fire

下一篇: pass javascript value to asp.net function