divs
をC#でプレースホルダを使用して動的に作成するにはどうすればよいですか?私はリピーターの中にプレースホルダーを宣言しました。プレースホルダを使用して動的にコントロールを生成する
コントロールをプレースホルダで動的に作成することはできますか?
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);
}
}
}
動的Repeater
コントロール内PlaceHolder
制御にdiv
を追加するには、Repeater
のItemDataBound
イベントを使用する必要があります。
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>
としてレンダリングするが、より多くの「.NET」
ph.Controls.Add(div1);
までdiv1 = new HtmlGenericControl("div");
から繰り返し、あなたは<asp:Panel>
コントロールを追加することができ、別のdiv
を追加するには
Panel panel1 = new Panel();
次に、これにコントロール<asp:Literal>
を追加します。
Literal literal1 = new Literal() { Text = "Hello" };
panel1.Controls.Add(literal1);
ph.Controls.Add(panel1);
そのdivにクラスを追加することは可能ですか? –
'HtmlGenericControl'の方法で生成されたdivにクラスを追加するには、' div1.Attributes.Add( "class"、 "classname"); '' Panel'オプションを使用している場合は、 'panel1.CssClass =" classname ";' –
divの左上のスタイルをどのように追加できますか? –
これは、単純な「PlaceHolder」コントロールでは機能しますが、リピーター内では機能しません。 –
'Item'が' ListItemType.Item'か 'ListItemType.AlternatingItem'であるかどうか確認します –
良い点ティム! – MUG4N