首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >单击链接按钮获取隐藏的ID值时,获取aspgridview的选定行

单击链接按钮获取隐藏的ID值时,获取aspgridview的选定行
EN

Stack Overflow用户
提问于 2011-06-09 23:57:39
回答 1查看 65.9K关注 0票数 19

我绑定了aspgridview中标题数据的链接按钮,也绑定了隐藏标签,其中包含ID值。当用户单击此链接按钮时,我想访问ID值。这是我需要的,因为如果用户登录,那么只有我弹出详细窗口,否则警报信息登录的细节。

在lnkTitle_Click()事件中,我试图访问选定的行以查找label控件。

代码语言:javascript
复制
GridViewRow grdSelRow = GridView1.SelectedRow;
Label lblID = (Label)grdSelRow.FindControl("lblID");

但我将grdSelRow设置为null。

如何在点击gridview的链接按钮时获得选中的行?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-10 11:34:23

问题是,当您单击GridView中的按钮时,该行将只是一个被单击的行,而不是一个SelectedRow。如果你想让它成为SelectedRow,你必须在按钮的标记中指定CommandName="Select"

这里有两种方法可以满足您的需求。

为ItemTemplate内部的LinkButton连接onclick事件

标记

代码语言:javascript
复制
<asp:TemplateField>
    <ItemTemplate>
        <asp:LinkButton ID="LinkButton1" runat="server" 
                    Text="Click1" 
                    OnClick="LinkButton1_Click"/>
    </ItemTemplate>
</asp:TemplateField>

代码隐藏

代码语言:javascript
复制
protected void LinkButton1_Click(object sender, EventArgs e)
{
    GridViewRow clickedRow = ((LinkButton) sender).NamingContainer as GridViewRow;
    Label lblID = (Label)clickedRow.FindControl("lblID");
}

使用RowCommand捕捉LinkButton点击。

标记

代码语言:javascript
复制
<asp:TemplateField>
    <ItemTemplate>
        <asp:LinkButton ID="LinkButton2" runat="server" 
                    Text="Click2" 
                    CommandName="MyCustomCommand"/>
    </ItemTemplate>
</asp:TemplateField>

代码隐藏

代码语言:javascript
复制
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");
    }
}
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6295767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档