2011-03-16 50 views
2

是否可以在代码隐藏中创建HTML定义列表?我试图以编程方式生成以下HTML。ASP.NET定义列表,<dl>,代码隐藏

<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> 

回答

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); 
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(); 
1

当然,也有这样做的许多方面。

1)进行用户控制。

<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> 

,并指定数据的用户控件正确地呈现于文字:在您的“DataDefinition.ascx”控制下您的标记可能是那样简单。

2)制作一个自定义UI控件,根据需要呈现该数据。

更可能的是,选项1将是最容易的,特别是如果您不想围绕HTML输出进行大量定制。