在HTML Select Control(.NET/C#)中的列表项上设置自定义属性

kir*_*der 10 .net c# asp.net

我正在尝试为数据绑定HTML Select控件中的每个列表项创建自定义属性.

生成的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>
Run Code Online (Sandbox Code Playgroud)

我尝试添加这样的属性,但它们没有被渲染:

<select id="selectList" class="multiselect" multiple="true" name="selectList[]" runat="server"></select>
Run Code Online (Sandbox Code Playgroud)


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();
Run Code Online (Sandbox Code Playgroud)

有关如何实现这一点的任何想法?谢谢!

Vin*_*ayC 15

您必须为控件的列表项添加属性.对列表控件进行数据绑定只能设置名称和文本.最简单的方法是手动添加项而不是数据绑定 - 例如:

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

如果必须使用数据绑定,则必须处理DataBound事件,然后迭代控件的列表项并添加/设置所需的属性.坦率地说,我发现这是一种全面的做事方式.