在 Asp.net 中从代码后面添加 Html

Posted

技术标签:

【中文标题】在 Asp.net 中从代码后面添加 Html【英文标题】:Adding Html from Code Behind in Asp.net 【发布时间】: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);

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

【问题讨论】:

【参考方案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】:
    取一个本地字符串变量 TEMP。 创建要在屏幕上显示的相同 html 并将其存储在变量 TEMP 中。 您可以根据需要在单独的函数中创建控件的html。 将 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" 的面板,我可以在其中添加控件,但问题是如何进行这样的嵌套。

以上是关于在 Asp.net 中从代码后面添加 Html的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.NET MVC 中从部分视图发布动态表单数据

如何使用 ASP.NET 从后面的代码中添加一个额外的 css 类?

如何在 asp.net 中从 javascript 调用代码隐藏函数?

在 asp.net core 5 MVC 视图中从 C# 代码调用 JavaScript 函数

如何在asp.net核心中从客户端调用web api方法?

如何在 asp.net Web 应用程序中从条码标签打印机打印条码