数据绑定列表框和设置css类

时间:2012-07-17 07:30:05

标签: asp.net events listbox web-controls

我想从数据库中获取值以生成列表框,这些项目位于不同的类中。 在HTML中,我希望它会像

<option value="a" class="A">A</option>

在asp.net中,我写了这个,但我不知道是否有任何方法可以帮助在数据绑定阶段指定class属性。 (在此阶段,我只能正确地放置选项的文本和值。)

lb.DataSource = CreateDataSourceForLB()
lb.DataTextField = "TextField"
lb.DataValueField = "ValueField"
lb.DataBind()

非常感谢您的帮助!

3 个答案:

答案 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");
        }
    }