如何在c#中使用占位符动态创建divs
?我已经在转发器中声明了占位符。
是否可以在占位符中动态创建控件?
答案 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
控件。首先检查PlaceHolder
是ItemType
还是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>