使用占位符动态生成控件

时间:2012-05-01 08:36:26

标签: asp.net .net

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

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

2 个答案:

答案 0 :(得分: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);
           }
     }
}

答案 1 :(得分:0)

要在div控件中向PlaceHolder控件动态添加Repeater,您需要使用ItemDataBound的{​​{1}}事件。

Repeater的方法中,您需要找到ItemDataBound控件。首先检查PlaceHolderItemType还是ListItemType.Item

ListItemType.AlternatingItem

然后您可以按照MUG4N的建议添加PlaceHolder ph = (PlaceHolder) e.Item.FindControl("PlaceHolderControl1");

div

要添加其他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>,但更多是“.net”

<div>

然后为此添加Panel panel1 = new Panel(); 控件。

<asp:Literal>