你如何在c#代码背后的通用控件(div)上设置innerhtml?

时间:2011-03-10 19:53:29

标签: c# webforms

我正在尝试动态地将控件(div)添加到网页:

 HtmlControl divControl = new html HtmlGenericControl("div");
 divControl.Attributes.Add("id", lb.Items[i].Value);
 divControl.Attributes.Add("innerHtml", "bob");
 divControl.Visible = true;
 this.Controls.Add(divControl);

但是如何设置控件本身的文本(innerhtml),因为它似乎不具有innerHtml作为属性不存在并且没有显示“value”或“text”选项?

由于

5 个答案:

答案 0 :(得分:8)

如果将“divControl”的类型更改为HtmlGenericControl,则应该能够设置InnerHtml属性:

HtmlGenericControl divControl = new HtmlGenericControl("div"); 

答案 1 :(得分:3)

您可以在HtmlControl中插入LiteralControl

HtmlControl divControl = new html HtmlGenericControl("div");
divControl.Attributes.Add("id", lb.Items[i].Value);
divControl.Visible = true; // Not really necessary
this.Controls.Add(divControl);

divControl.Controls.Add(new LiteralControl("<span>Put whatever <em>HTML</em> code here.</span>"));

答案 2 :(得分:2)

    HtmlGenericControl divControl = new  HtmlGenericControl("div");
    divControl.Attributes.Add("id", "myDiv");
    divControl.InnerText = "foo";
    this.Controls.Add(divControl);

答案 3 :(得分:0)

如果您只是添加文字,则应该这样做:

Literal l = new Literal();
l.Text = "bob";

HtmlControl divControl = new HtmlGenericControl("div");
divControl.Attributes.Add("id", "someId");
divControl.Visible = true;
divControl.Controls.Add(l);

this.Controls.Add(divControl);

编辑:您也可以在文字中嵌入HTML。

答案 4 :(得分:0)

我更喜欢这种添加通用html控件的方式(使用Literal):

Controls.Add(new Literal { Text = string.Format(@"<div id='{0}'><span>some text</span></div>", lb.Items[i].Value) });