DropDownList:DataTextField,DataValueField ... DataEnabledField?

时间:2010-06-01 09:07:12

标签: c# asp.net drop-down-menu

我目前正在使用一个继承自DropDownList的控件(它有一些与这个问题无关的额外功能,但它为我提供了一个很好的地方来实现我要讨论的额外内容)

我们正在使用数据绑定,DataTextField和DataValueField工作得非常好。但是,我发现自己需要一个类似的字段来控制项目是否启用。 (我已经覆盖了控件的RenderContents方法,因此它正确呈现非启用项,因为默认情况下DropDownList不会这样做。)

因此,我想知道如何覆盖DropDownList的数据绑定,使其完全正常,除了每个DataSource项的另一个字段应用于每个ListItem的Enabled属性。

(注意:我将绑定的字段不是直布尔值,并且没有显式/隐式转换为布尔值,因此我可能会将其作为字符串“传递”。)< / p>

1 个答案:

答案 0 :(得分:0)

DropDownList 控件的绑定逻辑实际上是在其基类 ListControl 中实现的。您需要覆盖的方法是 PerformDataBinding(IEnumerable)

您可以查看Reflector中的默认实现,以确保您不会遗漏某些内容,但它是受保护的虚拟内容,因此您不应该遇到任何问题。只需调用base,然后添加所需的逻辑。