asp.net从Code Behind页面插入HTML

时间:2013-06-02 16:56:47

标签: c# asp.net css

我遇到了ASP.NET问题。 我正在使用C#。

使用SQL查询我有数据库中的行数,我需要写相同数量的div标签来显示结果。

这是代码

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

项目是一个列表

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 = Container的另一个div中。

以这种方式,Literal控件不会放入div#Container

如何将For结果放入div中?

2 个答案:

答案 0 :(得分:10)

您可以使用Literal

来代替HtmlGenericControl控制,而不是用于呈现文字,而不是html标记。
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控件,它被渲染为div,其中包含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 :(得分:1)

相反,U应该使用Repeater Control,它将非常容易使用。

步骤

  1. 拿一个SqlDatasource。
  2. 带一个转发器Control。
  3. 将其数据源设置为。
  4. 根据需要设计itemTemplate。
  5. 完成..!
  6. 如果有任何疑问请遵循此LINK