2015-02-06 241 views
1

我创造了LinkBut​​ton动态:如何添加HTML元素动态(ASP.NET)

Lnk1

Lnk2

..

我想动态,但文本(或任何HTML元素),例如:

Lnk1 
Seperator 
Lnk2 
Sepeperator 

这是我的代码:

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

但在输出我得到如下图:

enter image description here

请让我知道如何给一个LinkBut​​ton的正是后添加一个文本。

回答

5

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

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"); 
    } 
} 
+0

好的信息+1。我吊销了你接受的答案。由于HtmlGenericControl似乎适合我的需求。 我需要添加标签并更改其样式。 Literalcontrol对象没有样式属性。 – 2015-02-06 15:10:12

+0

为了公平地回答下面的问题是有帮助的,应该投票表决。所以请投票吧。它不让我赞成。 – 2015-02-06 15:11:04

+0

@SNash。我听到你。我没有投下其他答案。 (我个人没有真正意识到这一点,大多数人都在努力提供帮助,而不是过分关注声誉点)。我确实继续前进并投票,因为您发现它有帮助。 – williamdnapier 2015-02-06 16:27:05

-1

尝试使用此作为参考。它在我过去的项目中的工作代码。

for (int i = 0; i <= rows - 1; i++) 
      { 
       HyperLink MyLink = new HyperLink(); 

       //Set the Hyperlink Text and ID properties. 
       MyLink.Text = "YOUR TEXT"; 
       MyLink.ID = "Link Id"; 
       // Add a spacer in the form of an HTML <br /> element. 
       Panel1.Controls.Add(new LiteralControl("<br />")); 
       Panel1.Controls.Add(MyLink); 
      } 
+0

否你的代码不起作用。还有任何标签(文字控制)出现在LinkBut​​ton之前。所以他们不按顺序出现。 – 2015-02-06 14:35:33

+0

好的,我找到了原因。我将LinkBut​​ton的位置设置为绝对。同样使用LiteralControl在这里真的很有用。 如果您添加评论我会upvote你并会接受你的答案,因为比较你的代码,我的帮助我找到原因。 – 2015-02-06 14:55:16

+0

也请从您的答案中删除不需要的信息:例如'MyLink.ID = admission.Rows [i] [0] .ToString(); username = admission.Rows [i] [3] .ToString(); string Refno = HttpUtility.UrlEncode(Encrypt(admission.Rows [i] [0] .ToString()));' – 2015-02-06 14:57:51