3

データベースから値を取得して、アイテムが異なるクラスにあるリストボックスを生成したいと考えています。HTMLでは、次のようになることを願っています

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

asp.netでこれを書きましたが、データバインディング段階でクラス属性を指定するのに役立つ方法があるかどうかはわかりません。(この段階では、オプション項目のテキストと値のみを正しく配置できます。)

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

助けてくれてありがとう!

4

3 に答える 3

0

データバインドの段階で、すべてのアイテムをループする必要があるとは思いません。

foreach (ListItem item in lb.Items)
{
              item.Attributes.Add("class", item.Value.ToUpper());      
}
于 2012-07-17T07:40:19.423 に答える
0

a の属性をバインドして HTML 属性を設定することはできないと思いますがDropdDownList、コントロールをバインドした後にすべての項目を繰り返し処理し、それらの属性を設定することはできます。

        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>
于 2012-07-17T07:40:35.773 に答える
0

リスト ボックスの Databound イベントを追加し、各リスト項目に class 属性を追加する必要があります。

protected void ListBox1_DataBound(object sender, EventArgs e)
    {
        foreach (ListItem li in ListBox1.Items)
        {
            li.Attributes.Add("Class", "A");
        }
    }
于 2012-07-17T07:43:28.940 に答える