GridViewRowCommand保持火
通过正确的我的label1.text将显示每次点击,但是我的标签在页面加载过程中被触发,这不是我想要的,所以任何想法都可以执行每次点击触发事件?
gridview属性
asp:GridView ID =“GridView1”runat =“server”AutoGenerateColumns =“False”DataSourceID =“SqlDataSource1”OnRowDataBound =“abcde”
在gridview里面的链接按钮
asp:LinkButton 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
}
将LinkButton的命令名称更改为
CommandName="Select"
并使用GridView1_SelectIndexChanged
事件首先获取选择行
GridViewRow gvr = new GridView1.SelectedRow;
和该行的FindControl