0

如何divs在 c# 中使用占位符动态创建?我已经在中继器内声明了占位符。

是否可以在占位符中动态创建控件?

4

2 回答 2

3

干得好:

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
     {
           PlaceHolder pl = e.Item.FindControl("PlaceHolder1") as PlaceHolder;
           if (pl != null)
           {
               HtmlGenericControl div1 = new HtmlGenericControl("div"); 
               div1.InnerHtml = "Hello"; 
               pl.Controls.Add(div1);
           }
     }
}
于 2012-05-01T08:40:18.470 回答
0

div要在PlaceHolder控件内动态添加一个Repeater控件,您需要ItemDataBound使用Repeater.

在方法中,ItemDataBound您将需要找到PlaceHolder控件。首先检查是否ItemTypeListItemType.ItemListItemType.AlternatingItem首先。

PlaceHolder ph = (PlaceHolder) e.Item.FindControl("PlaceHolderControl1");

然后您可以div按照 MUG4N 的建议添加。

HtmlGenericControl div1 = new HtmlGenericControl("div");
div1.InnerHtml = "Hello";
div1.Attributes.Add("class", "classname");
div1.Attributes.Add("style", "top: 10px; left: 20px;");
ph.Controls.Add(div1);

要添加另一个,只需从下div重复到div1 = new HtmlGenericControl("div");ph.Controls.Add(div1);

或者,您可以添加一个<asp:Panel>控件,因为它在页面上呈现为 a<div>但更多的是“.net”

Panel panel1 = new Panel();

然后在其中添加一个<asp:Literal>控件。

Literal literal1 = new Literal() { Text = "Hello" };
panel1.Controls.Add(literal1);
ph.Controls.Add(panel1);
于 2012-05-01T08:54:54.147 回答