2011-11-03 19 views
6

我試圖爲數據綁定HTML選擇控件中的每個列表項創建一個自定義屬性。在HTML選擇控件(.NET/C#)中的列表項上設置自定義屬性

生成的HTML輸出應該是這個樣子:

<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(); 

有關如何實現這一點的任何想法?謝謝!

回答

11

您必須將屬性添加到控件的列表項。數據綁定列表控件可能只能設置名稱&文本。所以,最簡單的方法是添加項手動,而不是數據綁定 - 例如:

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

如果必須使用數據綁定,那麼你必須處理DataBound事件,然後遍歷控件的列表項,並添加/套必需的屬性。坦率地說,我發現這是一種循環的做事方式。

+0

太棒了,謝謝Vinay。我不會放棄數據綁定,而是直接添加項目。 :) – kirkyoder

相關問題