【问题标题】:Adding Html from Code Behind in Asp.net在 Asp.net 中从代码后面添加 Html
【发布时间】:2014-01-18 05:13:57
【问题描述】:

我想将 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);

它会一个接一个地添加控件,如何使控件像上图那样嵌套。

【问题讨论】:

    标签: html asp.net c#-4.0 dynamic code-behind


    【解决方案1】:

    要将 HTML 附加到您的面板,请将 LiteralControl 控件添加到您的面板:

    string yourHTMLstring = "<div class='Main'>....";
    pnlUserdata.Controls.Add(new LiteralControl(yourHTMLstring));
    

    【讨论】:

      【解决方案2】:

      不要将该子控件添加到面板,将其添加到应该作为父控件的控件:

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

      【讨论】:

        【解决方案3】:
        1. 取一个本地字符串变量 TEMP。
        2. 创建要在屏幕上显示的相同 html 并将其存储在变量 TEMP 中。
        3. 您可以根据需要在单独的函数中创建控件的html。
        4. 将 html 作为 innerHTML 创建到您的面板/div 的位置。

        就是这样……

        【讨论】:

          【解决方案4】:
          <div id="Div1" runat="server">
          
          Div1.InnerText = "Text";
          

          【讨论】:

            【解决方案5】:

            制作 div runat="server"

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

            并在 div 中添加控件,如下所示

            d.Controls.Add();
            

            【讨论】:

            • 我有一个作为 runat="server" 的面板,我可以在其中添加控件,但问题是如何进行这样的嵌套。
            猜你喜欢
            • 2012-01-04
            • 2018-04-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多