2011-11-03 7 views
6

データバインドされたHTML Selectコントロールのリスト項目ごとにカスタム属性を作成しようとしています。私はこのような属性を追加しようとしましたが、彼らがレンダリングされていないHTML Selectコントロール(.NET/C#)のリスト項目にカスタム属性を設定する

<select> 
<option value="1" data-value="myValue1">item</option> 
<option value="2" data-value="myValue2">item</option> 
<option value="3" data-value="myValue3">item</option> 
</select> 

<select id="selectList" class="multiselect" multiple="true" name="selectList[]" runat="server"></select> 


ListItemCollection values = new ListItemCollection(); 

ListItem test = new ListItem("add"); 
test.Attributes.Add("data-value", "myValue"); 

values.Add(test); 

this.selectList.DataSource = values; 
this.selectList.DataBind(); 

結果のHTML出力は次のようになります。

どのようにこれを達成することができますか?ありがとう!

答えて

11

コントロールのリスト項目に属性を追加する必要があります。データバインディングリストコントロールは、名前を&というテキストにのみ設定できます。だから、最も簡単な方法は、手動ではなく、データバインディングの項目を追加することである - 例えば:

ListItem test = new ListItem("text1", "value1"); 
test.Attributes.Add("data-value", "myValue1"); 
applicationList.Items.Add(test); 

あなたはデータ・バインディングを使用する必要がある場合、あなたはDataBoundイベントを処理して、コントロールのリスト項目を反復処理し、/セットを追加する必要があります必要な属性率直に言えば、私はこれを物事を行うための丸い方法だと感じました。

+0

恐ろしい、感謝Vinay。データバインディングを忘れて、代わりにアイテムを直接追加することは私には起こりませんでした。 :) – kirkyoder