【问题标题】:How do I dynamically create new Hyperlinks in ASP.NET?如何在 ASP.NET 中动态创建新的超链接?
【发布时间】:2010-10-31 04:24:30
【问题描述】:

我将解释我想要实现的目标:

我希望有一种情况,我可以通过在后面的代码中循环创建控件来创建任意数量的控件。我可以在使用 PHP 时通过混合 PHP 代码和 HTML 代码来做到这一点。这允许我动态生成实际的 HTML 标签。

在 ASP.NET 中,我还没有找到复制此功能的方法。

我曾考虑在 Init() 函数之类的代码后面使用循环来创建 new() 对象数组,设置它们的属性并希望将其传递到 aspx 文件中,但它没有没用。

我该怎么做?

【问题讨论】:

    标签: c# .net asp.net visual-studio hyperlink


    【解决方案1】:

    如果你想动态创建 ASP.Net 超链接控件 你可以这样做:

    HyperLink hyp = new HyperLink();
        hyp.ID = "hypABD";
        hyp.NavigateUrl = "";
        Page.Controls.Add(hyp);
    

    【讨论】:

    • 通过此代码创建超链接,作为非名称链接,如何为超链接分配文本?
    【解决方案2】:

    如果您想动态生成控件并且不需要将这些回发到服务器(即当单击/更改控件时,它将返回到同一页面) - 您可以使用 中的控件System.Web.UI.HtmlControls 命名空间。

    例如

    HtmlAnchor link = new HtmlAnchor();
    link.href = "www.stackoverflow.com";
    Page.Controls.Add(link);

    希望这能给你足够的背景知识。

    编辑:您可以在循环中使用上述代码并将固定值替换为来自数据库/对象的值。

    【讨论】:

      【解决方案3】:

      在 asp.net 中有 很多 种方法可以做到这一点:

      1. 如果你真的想要,你可以在 aspx 标记中直接使用<% %> 标签放置一个循环,就像使用 php 或经典 asp 一样。这是推荐的。
      2. 您可以在表单上放置一个占位符或面板控件,在后面的代码中创建任意数量的超链接控件或锚标记,并将它们添加到占位符的控件集合中。这稍微好一点,但仍然不是最佳的。
      3. 您可以在页面上放置合理数量的超链接控件,将它们的visible 属性默认设置为false,并“启用”您需要的那些。由于 asp.net 页面生命周期的一些奇怪之处,这比 #2 更受欢迎。
      4. 这些链接来自某个地方,而那个地方通常是数据库或其他合理的数据源。所以让它成为数据驱动的——将该数据源绑定到一个控件,如转发器、网格视图、详细信息视图或类似的。这可能是您的最佳选择。

      【讨论】:

        【解决方案4】:

        请记住,ASP.Net 中的超链接和链接按钮之间存在区别

        如果您只想要超链接,您可以创建任意数量的超链接对象,方法是创建一个超链接对象,创建新对象,然后将它们添加到某个控件的控件集合中,例如面板或跨度或其他东西。

        LinkBut​​tons 有点不同。如果要创建回发到服务器的链接,则必须使用中继器控件。 (好吧,您不必这样做,但另一种选择是黑客工作。)

        也可以使用 Repeater 控件创建超链接,如果可能的话,我会推荐这种方法。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-02-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-19
          相关资源
          最近更新 更多