NMM*_*NMM 18 gridview linkbutton
我绑定链接按钮与aspgridview中的标题数据,还绑定隐藏标签,其中包含ID值.当用户点击此链接按钮时,我想访问ID值.这个我需要因为,如果用户登录然后只有我弹出详细信息窗口,否则警告消息登录以获取详细信息.
在lnkTitle_Click()事件中我试图访问所选行以查找标签控件.
GridViewRow grdSelRow = GridView1.SelectedRow;
Label lblID = (Label)grdSelRow.FindControl("lblID");
Run Code Online (Sandbox Code Playgroud)
但我得到grdSelRow为null.
单击gridview的linkbutton时如何获取所选行?
nav*_*een 24
问题是,当您单击GridView中的按钮时,该行将只是一个单击行而不是一个SelectedRow.如果你想让它成为SelectedRow,你必须CommandName="Select"在Button的标记中指定.
以下是满足您要求的两种方法.
为ItemTemplate中的LinkButton连接一个onclick事件
标记
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server"
Text="Click1"
OnClick="LinkButton1_Click"/>
</ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
代码隐藏
protected void LinkButton1_Click(object sender, EventArgs e)
{
GridViewRow clickedRow = ((LinkButton) sender).NamingContainer as GridViewRow;
Label lblID = (Label)clickedRow.FindControl("lblID");
}
Run Code Online (Sandbox Code Playgroud)
使用RowCommand捕获LinkButton单击.
标记
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LinkButton2" runat="server"
Text="Click2"
CommandName="MyCustomCommand"/>
</ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
代码隐藏
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if(e.CommandName.Equals("MyCustomCommand"))
{
GridViewRow clickedRow = ((LinkButton)e.CommandSource).NamingContainer as GridViewRow;
Label lblID = (Label)clickedRow.FindControl("lblID");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63771 次 |
| 最近记录: |