2014-03-07 34 views
0

所以基本上im添加元素到我的html,通過從後端litterals。 它在asp內容佔位符中使用它時效果很好。但我需要它成爲特定頁面上的另一個特定位置。我嘗試了使用runat =「server」製作div,但它似乎沒有工作..有沒有人有我可以使用的經驗?這是我的代碼的一部分:添加新的LiteralControl到一個aspx頁面,從aspx.cs

foreach (var something in somethingelse) 
{ 
    this.Page.Form.FindControl("ContentPlaceholder1") 
     .Controls.Add(
     new LiteralControl("It's a long list, so just typing this.") 
    ); 
} 

回答

0

您可以在div上使用runat =「server」。例如:

<div id="myNewDiv" runat="server"></div> 

,並在後面的代碼:

myNewDiv.InnerHtml = "Some new text in the div"; 

如果您需要動態創建的div,你可以做到以下幾點:

 for (var i = 0; i < 10; i++) 
     { 
      var ele = new HtmlGenericControl("div") 
      { 
       InnerHtml = string.Format("new div {0}", i), 
       ID = string.Format("NewDiv_{0}", i) 
      }; 

      Page.Form.FindControl("MainContent").Controls.Add(ele); 
     } 

你甚至可以推新div轉換爲ContentPlaceHolder中任意位置的現有div:

 var page = Page.Form.FindControl("MainContent").FindControl("myNewDiv").Controls; 
     for (var i = 0; i < 10; i++) 
     { 
      var ele = new HtmlGenericControl("div") 
      { 
       InnerHtml = string.Format("new div {0}", i), 
       ID = string.Format("NewDiv_{0}", i) 
      }; 

      page.Add(ele); 
     } 
0

放置在源的HTML標籤,如下

<table> 
<tbody> 
<-- Your literal control here --> 
</tbody> 
</table> 

,並在後面的代碼設置literal1.Text ="<tr><td>'"+ Your data here +"'</td></tr>",也將努力

+0

這是在foreach循環壽,所以如果我這樣做,它不會作出新的文字對於每一個項目,如果我這樣做,就像即時命名文字「字面」,這會導致一個問題? – Joonas89