【问题标题】:Find what button was clicked inside a Gridview ASP.Net c#查找在 Gridview ASP.Net c# 中单击了什么按钮
【发布时间】:2017-05-09 13:24:03
【问题描述】:

我有一个名为 gvappts 的网格视图。 这个网格有七列,一列是一周中的每一天。 网格也有多行,每个单元格里面都有一个按钮。

如果我使用 onRowCommand 事件,有没有办法找到被点击的按钮的名称?

我从这个开始:

if (e.CommandName == "GetData")
{
    //Get rowindex
    int rowindex = Convert.ToInt32(e.CommandArgument);
    //Get Row
    GridViewRow gvr = gvappts.Rows[rowindex];
}

不确定我是否正确。

这是网页上gridview的sn-p,所有列都使用TemplateFields。

<Columns>
   <asp:TemplateField   HeaderText="Day 1" HeaderStyle-CssClass= "hdr" ItemStyle-CssClass="Grid">
        <ItemTemplate>
            <asp:LinkButton id="lbd1" runat="server" Text='<%#(Eval("Day1"))%>' CommandName="GetData" CommandArgument='<%# Container.DataItemIndex %>'/>
        </ItemTemplate>
   </asp:TemplateField>
</Columns>

【问题讨论】:

  • 你能贴出gridview的标记吗?
  • 您可以将 onclick 事件添加到按钮本身,而不是使用命令。然后在您的 onclick 中,只需将您的发件人转换为按钮即可获取其详细信息。
  • 使用 FindControl 之类的东西。LinkBut​​ton lbtn = (LinkBut​​ton)GridView1.FindControl("btnLink");或 检查发件人。 LinkBut​​ton lb = (LinkBut​​ton)sender;
  • @jmag,不,你不能。在RowCommand 中,发送者是 GridView,而不是 LinkBut​​ton。

标签: c# asp.net button gridview


【解决方案1】:

您可以使用 CommandSource 并将其转换回 LinkBut​​ton。

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    LinkButton lb = e.CommandSource as LinkButton;
    string value = lb.CommandArgument;
}

【讨论】:

  • 如果您只想找到单击的按钮的 ID,要添加一件事,您可以这样做 ----- string value = lb.ID;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-05
  • 1970-01-01
相关资源
最近更新 更多