0

divsc#でプレースホルダーを使用して動的に作成するにはどうすればよいですか? リピーター内でプレースホルダーを宣言しました。

プレースホルダーでコントロールを動的に作成することは可能ですか?

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には、 のイベントを使用する必要があります。PlaceHolderRepeaterItemDataBoundRepeater

メソッド内でコントロール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>または、これはページ上でレンダリングされる<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 に答える