【问题标题】:Which link is clicked in asp.net gridview row在 asp.net gridview 行中单击了哪个链接
【发布时间】:2019-02-20 17:13:51
【问题描述】:

我在 gridview 的同一个单元格中添加两个链接和一些纯文本,我还有 gridview_SelectedIndexChanged 函数,当单击任何链接时调用该函数,并且基于网格中的值我正在运行我的数据库查询。 gridview 也是动态创建的,因此可以有不同的行数。

有没有办法知道在gridview_SelectedIndexChanged函数中点击了Link1或Link2?

protected void gridview_SelectedIndexChanged(object sender, EventArgs e)
{
    if (Link1.Clicked)
       {do this}
    elseif (Link2.Clicked)
       {do this}
}

【问题讨论】:

    标签: c# sql asp.net


    【解决方案1】:

    您可能希望使用 ASP.NET 控件跟踪单击了哪个链接

    <asp:LinkButton ID="Link1" runat="server" Click="Link1_Click" />

    在你的 html 中

    然后在您的后端添加一个事件处理程序,如

     public void Link1_Click(object sender, EventArgs e)
     {
    //add variable marking this link was clicked
    link1_clicked = true;
          Response.Redirect("Link1Destination.aspx");
     }
    

    对link2做同样的事情

    <asp:LinkButton ID="Link2" runat="server" Click="Link2_Click" />

     public void Link2_Click(object sender, EventArgs e)
     {
    //add variable marking this link was clicked
    link2_clicked = true;
          Response.Redirect("Link2Destination.aspx");
     }
    

    将布尔变量 link1_clickedlink2_clicked 添加到后端代码的顶部。然后,当您需要检查已单击的内容时,您可以通过布尔变量进行过滤,以查看标记为 true 的内容为使用 for 循环单击。

    基本上,事件处理程序是您的 if clicked 语句。

    【讨论】:

    • 好吧,该解决方案在我的情况下不起作用,因为我从 asp gridview ItemTemplate 中的代码中添加了这些链接,如果我在 ItemTemplate 中添加 OnClick,它会在 click 方法上调用它自己的而不是调用 gridview selectedindexchanged函数,所以我不知道点击了哪一行。
    • 是大网格吗?您可以手动跟踪每个链接所在的行。除非网格是动态生成的,否则您可能无法预测这一点。我会为你做更多的研究。
    • 网格是动态生成的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多