如何动态添加HTML元素(ASP.NET)

S N*_*ash 1 c# vb.net asp.net

我正在动态创建LINK按钮:

Lnk1

Lnk2

..

我想动态但它们之间的文本(或任何HTML元素),例如:

Lnk1
Seperator
Lnk2
Sepeperator
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

 for (int i=0;i<10;i++)
            {
    form1.Controls.Add(lnks[i]);
    Response.Write("Seperator<br>");
}
Run Code Online (Sandbox Code Playgroud)

但在输出中我得到以下图片:

在此输入图像描述

请让我知道如何在一个linkBut​​ton之后准确添加一个文本.

小智 5

看看这种方法.你走在正确的轨道上,但你需要考虑表格本身.该表单有一个名为Controls的集合属性.如果在for循环中实例化控件,则可以按顺序有效地添加每个控件.首先,创建LinkBut​​ton实例并为其分配属性.然后,创建您想要使用的任何类型的分隔符控件.我在这个例子中使用了一个HtmlGenericControl,它允许我们分配一个text属性(Separator).注意我开始我的循环为1而不是零以匹配您的示例...希望这有帮助.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        for (int i = 1; i < 11; i++)
        {
            LinkButton linkButton = new LinkButton();
            linkButton.Text = "Lnk" + i;
            linkButton.Click += linkButton_Click;
            form1.Controls.Add(linkButton);

            HtmlGenericControl p = new HtmlGenericControl("p");
            p.InnerText = "Separator";
            form1.Controls.Add(p);
        }
    }

    void linkButton_Click(object sender, EventArgs e)
    {
        Response.Redirect("http://www.stackoverflow.com");
    }
}
Run Code Online (Sandbox Code Playgroud)