2015-02-06 208 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