2013-06-02 51 views
2

我遇到了ASP.NET的问题。 我正在使用C#。asp.net从Code Behind页面插入HTML

对于SQL查询,我具有数据库中行的精确数量,我需要编写相同数量的div标记以显示结果。

这是代码

count是一个包含行数的变量。

项目是一个List

for (int i = 0; i < count; i++) 
{ 
    form1.Controls.Add(new Literal() { 
     ID = "ltr" + i, 

     Text = "<div class= 'container' >Name = " + Projects[i].Name + " ;</div>" }); 
} 

但是有一个问题,我必须把这些DIV与ID =容器内部的div。

这样

文字控件不放入DIV#集装箱

我该怎么办放置对于结果转换成一个div?

+0

可以显示预期结果HTML将是什么样子? –

+0

用PHP结果它在这种情况下http://d.pr/i/QMWe count = 2 –

回答

9

相反Literal控制,其目的是使文本,而不是HTML标签,您可以使用HtmlGenericControl

HtmlGenericControl div = new HtmlGenericControl(); 
div.ID = "div" + i; 
div.TagName = "div"; 
div.Attributes["class"] = "container"; 
div.InnerText = string.Format("Name = {0} ;", Projects[i].Name); 
form1.Controls.Add(div); 

Panel控制,这是它里面渲染成格,与Literal

Panel div = new Panel(); 
div.ID = "panel" + i; 
div.CssClass = "container";  
div.Controls.Add(new Literal{Text = string.Format("Name = {0} ;", Projects[i].Name)});  
form1.Controls.Add(div); 
1

取而代之的是U应该使用中继控制,这将是非常容易的工作。

步骤

  1. 拿一个SqlDataSource。
  2. 以转发器控制。
  3. 将其数据源设置为。
  4. 只要你喜欢设计itemTemplate。
  5. 完成..!

如果有任何疑问,按照这个LINK