我有一个绑定(bind)到 DataTable 的下拉列表。
ddlItems.DataSource = dt;
ddlItems.DataBind();
在最终的 html 中我有:
...
<option value="-1">aaa</option>
<option value="-2">bbb</option>
...
但我想在 DataBound 事件中捕获绑定(bind)事件并为每个 listItem 添加一个属性,以便最终的 Html 将是:
...
<option value="-1" MyAttr="lalala1" >aaa</option>
<option value="-2" MyAttr="lalala2" >bbb</option>
...
但是数据绑定(bind)事件的签名是:
protected void ddlItemsDataBound(object sender, EventArgs e)
而 e 只有 :
我怎样才能捕捉到特定的有界列表项?
附:
我不想要取消数据绑定(bind)事件,并使用常规循环(在循环中添加 lisItems)
最佳答案
DropDownList.DataBound
事件在为整个 DropDownList
调用 DropDownList.DataBind()
后触发。
DropDownList.Items
是一个没有事件的 ListItemCollection
。
您将不得不手动再次遍历 DropDownList.Items
集合或手动构建 ListItemCollection
然后添加它。
注意:您可能不喜欢的替代方法是扩展 DropDownList 和 ListItemCollection 并添加您想要的事件。
关于c# - 在 DataBound 事件中向 DropDownList 添加属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8311366/