我想从数据库中获取值以生成列表框,这些项目位于不同的类中。 在HTML中,我希望它会像
<option value="a" class="A">A</option>
在asp.net中,我写了这个,但我不知道是否有任何方法可以帮助在数据绑定阶段指定class属性。 (在此阶段,我只能正确地放置选项的文本和值。)
lb.DataSource = CreateDataSourceForLB()
lb.DataTextField = "TextField"
lb.DataValueField = "ValueField"
lb.DataBind()
非常感谢您的帮助!
答案 0 :(得分:0)
我不认为在数据绑定阶段你只需要循环所有项目。
foreach (ListItem item in lb.Items)
{
item.Attributes.Add("class", item.Value.ToUpper());
}
答案 1 :(得分:0)
我认为您不能绑定DropdDownList
的属性来设置HTML属性,但是,您可以在绑定控件后迭代所有项目,并设置其属性:
foreach (var item in this.ddl.Items.OfType<ListItem>())
{
item.Attributes.Add("class", "koko");
}
以上代码生成以下HTML:
<select name="ddl" id="ddl">
<option selected="selected" value="" class="koko">---Select---</option>
<option value="1" class="koko">New Hire - Job not specified</option>
<option value="2" class="koko">Chief Executive Officer</option>
.....
</select>
答案 2 :(得分:0)
您需要添加列表框的数据绑定事件,并将class属性添加到其每个列表项。
protected void ListBox1_DataBound(object sender, EventArgs e)
{
foreach (ListItem li in ListBox1.Items)
{
li.Attributes.Add("Class", "A");
}
}