是否可以在代码隐藏中创建HTML定义列表?我正在尝试以编程方式生成以下HTML。
<dl style="overflow: hidden; font-size: small;">
<dt style="float: left; width: 200px; clear: both; text-align: right; margin-left: 15px;">Apple:</dt>
<dd style="float: left; width: 90px; margin: 0px 0px 8px;">Fruit<br>Red<br></dd>
</dl>
答案 0 :(得分:7)
您可以将元素的标记名称传递给HtmlGenericControl构造函数:
HtmlGenericControl dl = new HtmlGenericControl("dl");
dl.Attributes.Add("style", "overflow: hidden; font-size: small;");
Page.Controls.Add(dl);
HtmlGenericControl dt = new HtmlGenericControl("dt");
dt.Attributes.Add("style", "float: left; width: 200px; etc.");
dt.InnerText = "Apple:";
dl.Controls.Add(dt);
答案 1 :(得分:1)
当然,有很多方法可以做到这一点。
1)进行用户控制。您的标记可以像“DataDefinition.ascx”控件中的以下内容一样简单:
<dl style="overflow: hidden; font-size: small;">
<dt style="float: left; width: 200px; clear: both; text-align: right; margin-left: 15px;"><asp:Literal ID="literalIdentifier" runat="server" /></dt>
<dd style="float: left; width: 90px; margin: 0px 0px 8px;"><asp:Literal ID="literalDefinition" runat="server" /><br>Red<br></dd>
</dl>
为UserControl分配数据以适当地呈现文字。
2)创建一个自定义UI控件,根据需要呈现该数据。
很可能,选项1将是最简单的,特别是如果您不想围绕HTML的输出进行大量自定义。
答案 2 :(得分:0)
使用stringbuilder
StringBuilder sb = new StringBuilder();
sb.Append(@"<dl style='overflow: hidden; font-size: small;">
<dt style='float: left; width: 200px; clear: both; text-align: right; margin-left: 15px;'>Apple:</dt>
<dd style='float: left; width: 90px; margin: 0px 0px 8px;'>Fruit<br>Red<br></dd>
</dl>");
myControl.innerHtml = sb.toString();