【问题标题】:Dynamic hyperlink from code behind asp.net来自asp.net背后代码的动态超链接
【发布时间】:2017-11-10 01:08:04
【问题描述】:

我想在 asp.net 后面的代码中对表格列中的每个字段进行动态超链接,我是这样实现的:

table.Append("<td><asp:HyperLink ID='HyperLink1' NavigateUrl='#' runat='server'>" + (string)strNAME + "</asp:HyperLink></td>"); 

在现场,但是当我运行它时,没有可以点击的链接。它没有效果。正确的实现方式是什么?

【问题讨论】:

  • IMO 最好使用 HTML 锚标记而不是使用 Asp.Net 超链接服务器控件,除非您使用一些复杂的编程。如果只想使用 HTML 锚元素进行简单的重定向,应该是首选。如果您想让 HyperLink 控件在动态绑定后从后面的代码中访问,您可以跟进 Andrei 或 Komal。
  • 是的...从来没想过。 HTML 标记更简单。非常感谢 Superabhat Biswai

标签: asp.net hyperlink


【解决方案1】:

您需要以不同的方式处理此问题。服务器端控件不能作为字符串文字添加,它们应该是对象。因此,您可以将其添加为服务器端控件:

HyperLink hl = new HyperLink();
hl.ID = "HyperLink1";
hl.NavigateUrl = "#";
hl.Text = (string)strNAME;
TableCell tc = new TableCell();
tc.Controls.Add(hl);
table.Controls.Add(tc);

或将其添加为客户端链接:

table.Append("<td><a href='#'>" + (string)strNAME + "</a></td>");

旁注:将表格单元格添加到“表格”类型没有意义,因为应该有一行,而不是表格,但我只是将您的代码保持原样,根据需要进行调整。

【讨论】:

【解决方案2】:

从代码隐藏创建超链接

HyperLink hlnk = new HyperLink();
        hlnk.InnerText = (string)strNAME;
        hlnk.ID = "HyperLink1";
        hlnk.NavigateUrl = "/test.aspx";
table.Controls.Add(hlnk);

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2022-10-02
    • 2021-05-13
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 2021-09-03
    • 2019-09-17
    • 2014-11-18
    • 1970-01-01
    相关资源
    最近更新 更多