C# 如何在ASP.NET中动态创建新的超链接?

C# 如何在ASP.NET中动态创建新的超链接?,c#,.net,asp.net,visual-studio,hyperlink,C#,.net,Asp.net,Visual Studio,Hyperlink,我将解释我试图实现的目标: 我希望有一种情况,通过在代码后面的循环中创建控件,可以创建任意多的控件。我可以在使用PHP时通过混合PHP代码和HTML代码来实现这一点。这允许我动态生成实际的HTML标记 在ASP.NET中,我还没有找到复制此功能的方法 我曾考虑在类似Init()函数的代码中使用一个循环来创建一个新()对象数组,设置它们的属性,并希望将其传递到aspx文件中,但没有成功 如何做到这一点?请记住,ASP.Net中的超链接和链接按钮是有区别的 如果只需要超链接,可以通过创建超链接对象、

我将解释我试图实现的目标:

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

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

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


如何做到这一点?

请记住,ASP.Net中的超链接和链接按钮是有区别的

如果只需要超链接,可以通过创建超链接对象、创建新对象,然后将它们添加到某些控件的控件集合(如panel或span等)来创建任意数量的超链接

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

超链接也可以通过使用中继器控件创建,如果可能的话,我建议使用这种方法。

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

  • 如果您真的愿意,可以使用
    标记将循环直接放入aspx标记中,就像php或经典asp一样。不建议这样做
  • 您可以在表单上放置占位符或面板控件,在代码中创建任意数量的超链接控件或锚定标记,并将它们添加到占位符的控件集合中。这稍微好一点,但仍然不是最优的
  • 您可以在页面上放置合理数量的超链接控件,默认情况下将其
    visible
    属性设置为false,然后“启用”所需的超链接控件。这比#2更可取,因为asp.net页面生命周期有一些奇怪之处
  • 这些链接来自某个地方,而该地方通常是一个数据库或其他合理的数据源。因此,让它成为数据驱动的—将该数据源绑定到一个控件,如repeater、gridview、details视图或类似的控件。这可能是你最好的选择

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

    e、 g

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


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

    如果要动态创建ASP.Net超链接控件 您可以简单地执行以下操作:

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

    通过此代码创建超链接,作为非名称链接,如何为超链接指定文本?
    HyperLink hyp = new HyperLink();
        hyp.ID = "hypABD";
        hyp.NavigateUrl = "";
        Page.Controls.Add(hyp);