C# 在数据绑定事件中将属性添加到DropDownList?

C# 在数据绑定事件中将属性添加到DropDownList?,c#,asp.net,drop-down-menu,C#,Asp.net,Drop Down Menu,我有一个dropdownlist,我正在绑定到DataTable ddlItems.DataSource = dt; ddlItems.DataBind(); 在最终的html中,我有: ... <option value="-1">aaa</option> <option value="-2">bbb</option> ... e只有: 如何捕获特定的有界listItem p、 美国 我不想取消数据绑定事件,也不想使用常规循环在循环中

我有一个dropdownlist,我正在绑定到DataTable

  ddlItems.DataSource = dt;
  ddlItems.DataBind();
在最终的html中,我有:

...
<option value="-1">aaa</option>
<option value="-2">bbb</option>
...
e只有:

如何捕获特定的有界listItem

p、 美国

我不想取消数据绑定事件,也不想使用常规循环在循环中添加lisItems

DropDownList.databound事件在为整个DropDownList调用DropDownList.DataBind后激发

项目是没有事件的ListItemCollection

您必须再次手动循环DropDownList.Items集合,或者手动构建ListItemCollection并添加它

注意:您可能不喜欢的另一种方法是扩展DropDownList和ListItemCollection,并添加所需的事件。

DropDownList.DataBound事件在为整个DropDownList调用DropDownList.DataBind后激发

项目是没有事件的ListItemCollection

您必须再次手动循环DropDownList.Items集合,或者手动构建ListItemCollection并添加它


注意:您可能不喜欢的另一种选择是扩展DropDownList和ListItemCollection并添加所需的事件。

您需要的是类似于GridView.RowDataBound的内容,DropDownList中不存在GridView.RowDataBound。您需要做的是在DataBound事件中创建一个foreach循环,或者您可以通过构建自己的定制DropDownList来添加此功能。后一个选项的唯一问题是Microsoft并不总是公开您需要覆盖的方法。。。因此,我无法建议做您想做的事情有多容易或有多难。

您想做的事情与GridView.rowdabund类似,DropDownList中不存在GridView.rowdabund。您需要做的是在DataBound事件中创建一个foreach循环,或者您可以通过构建自己的定制DropDownList来添加此功能。后一个选项的唯一问题是Microsoft并不总是公开您需要覆盖的方法。。。因此,我无法建议做你想做的事情有多容易或难。

我不想。。。使用常规循环在循环中添加ListItems。恐怕你别无选择。但将不存在的属性添加到ListItems。如果您能告诉我们您实际想要实现的目标,可能会有更好的方法。发件人是什么?你能把它投射到ListItem吗?@MBen不,,,它的DropDownList@RoyiNamir:然后施展它,并获得SelectedIndex@MBen它不起作用,它一次将所有6个列表项绑定起来!。。。。我不想。。。使用常规循环在循环中添加ListItems。恐怕你别无选择。但将不存在的属性添加到ListItems。如果您能告诉我们您实际想要实现的目标,可能会有更好的方法。发件人是什么?你能把它投射到ListItem吗?@MBen不,,,它的DropDownList@RoyiNamir:然后施展它,并获得SelectedIndex@MBen它不起作用,它一次将所有6个列表项绑定起来!。。。。
 ...
    <option value="-1" MyAttr="lalala1" >aaa</option>
    <option value="-2" MyAttr="lalala2" >bbb</option>
    ...
  protected void ddlItemsDataBound(object sender, EventArgs e)