在 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 从后面的代码中添加一个额外的 css 类?
如何在 asp.net 中从 javascript 调用代码隐藏函数?