web-dev-qa-db-ja.com

Asp.netのコードビハインドからHtmlを追加する

このようなコード構造からパネルにHTML構造とコントロールを追加したい

<div class='Main'>
    <div class='cst'>
        First Name
    </div>
    <div class='csc'>
        <asp:Label ID="lblFirstName" CssClass="ronly" runat="server"></asp:Label>
    </div>
    <div class='cst'>
        First Name
    </div>
    <div class='csc'>
        <asp:Label ID="lblFirstName" CssClass="ronly" runat="server"></asp:Label>
    </div>        <div class='cst'>
        First Name
    </div>
    <div class='csc'>
        <asp:Label ID="lblFirstName" CssClass="ronly" runat="server"></asp:Label>
    </div>
    <div class='end'>
    </div>
</div>

  <asp:Panel runat="server" CssClass="sxpnl" ID="pnlUserdata">
        </asp:Panel>

このように追加しようとすると

 HtmlGenericControl divcontrol = new HtmlGenericControl();
 divcontrol.Attributes["class"] = "sxro sx1co";
 divcontrol.TagName = "div";
 pnlUserSearch.Controls.Add(divcontrol);
 Label question = new Label();
 questionDescription.Text = "text";
 pnlUserSearch.Controls.Add(question);

コントロールを次々に追加しますが、上記のようにコントロールを入れ子にする方法はありますか。

17

その子コントロールをパネルに追加しないで、親になるコントロールに追加します。

HtmlGenericControl divcontrol = new HtmlGenericControl();
divcontrol.Attributes["class"] = "sxro sx1co";
divcontrol.TagName = "div";
pnlUserSearch.Controls.Add(divcontrol);
Label question = new Label();
questionDescription.Text = "text";
divcontrol.Controls.Add(question); // add to the new div, not to the panel
14
Hans Kesting

パネルにHTMLを追加するには、パネルにLiteralControlコントロールを追加します。

string yourHTMLstring = "<div class='Main'>....";
pnlUserdata.Controls.Add(new LiteralControl(yourHTMLstring));
25
Yair Nevet
<div id="Div1" runat="server">

Div1.InnerText = "Text";
1
HQtunes.epizy
  1. 1つのローカル文字列変数TEMPを取得します。
  2. 画面に表示するのと同じhtmlを作成し、変数TEMPに保存します。
  3. 要件に基づいて、別の機能でHTMLのコントロールを作成できます。
  4. 作成したhtmlをinnerHTMLとしてpanel/divに配置します。

それでおしまい...

0
Chirag

Divを作成するrunat="server"

<div id="d" runat="server"></div>

以下のようにdiv内にコントロールを追加します

d.Controls.Add();
0
Saurabh