回答您问题的最快(也是最丑陋)的方法是:
解决方案 1
.ASPX 文件
<ul class="ulSpecialty" id="ulSpecialty_selector" runat="server">
</ul>
.ASPX.cs 文件(代码隐藏)
protected void Page_Load(object sender, EventArgs e)
{
//the ugly way, fastest that answers your question
TheUglyWay();
}
private void TheUglyWay()
{
StringBuilder innerHtml = new StringBuilder();
for(var i = 0; i < 3; i++){
string li = @"
<li class=""liSubSpecialty active"" data-trait-id=""9"">
<a href=""test.htm"" class=""premote trait-link large btn"" data-trait-id=""9"">
<span class=""check""><i class=""icon icon-ok""></i></span>
<span class=""name"">Cardiology</span>
<span class=""count"">6</span>
</a>
</li>";
innerHtml.AppendLine(li);
}
ulSpecialty_selector.InnerHtml = innerHtml.ToString();
}
到目前为止,上述方法是解决问题的最糟糕的方法。即使它有效,代码也不符合 .NET 编写 Web 应用程序的“方式”,它是不可维护的,而且......只是丑陋:)。
还有更好的方法,这里有一个使用Repeater控件的方法:
解决方案 2
.ASPX 文件
<asp:Repeater runat="server" ID="rptSpeciality">
<HeaderTemplate>
<ul class="ulSpecialty" id="ulSpecialty_selector">
</HeaderTemplate>
<ItemTemplate>
<li class="liSubSpecialty active" data-trait-id="9">
<a href="test.htm" class="premote trait-link large btn" data-trait-id="9">
<span class="check"><i class="icon icon-ok"></i></span>
<span class="name">Cardiology</span>
<span class="count">6</span>
</a>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
.ASPX.cs 文件(代码隐藏)
protected void Page_Load(object sender, EventArgs e)
{
//the better way, using a repeater
TheBetterWay();
}
private void TheBetterWay()
{
//bind the repeater to an array of three elements
rptSpeciality.DataSource = new object[] { null, null, null };
rptSpeciality.DataBind();
}
当然,使用第二种解决方案,您可以使用数据绑定表达式将代码中的数据插入到 li 标记中