divs
c#でプレースホルダーを使用して動的に作成するにはどうすればよいですか? リピーター内でプレースホルダーを宣言しました。
プレースホルダーでコントロールを動的に作成することは可能ですか?
どうぞ:
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);
}
}
}
コントロール内のコントロールに を動的に追加するdiv
には、 のイベントを使用する必要があります。PlaceHolder
Repeater
ItemDataBound
Repeater
メソッド内でコントロールItemDataBound
を見つける必要があります。が最初かどうかを最初PlaceHolder
に確認します。ItemType
ListItemType.Item
ListItemType.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>
または、これはページ上でレンダリングされる<div>
が、より「.net」であるため、コントロールを追加することもできます
Panel panel1 = new Panel();
<asp:Literal>
次に、これにコントロールを追加します。
Literal literal1 = new Literal() { Text = "Hello" };
panel1.Controls.Add(literal1);
ph.Controls.Add(panel1);