C# 扩展ASP.NET DropDownList
我正在尝试创建一个从DropDownList继承的自定义控件 我需要的是向ListItem(在Item集合中)添加一个新属性C# 扩展ASP.NET DropDownList,c#,asp.net,controls,C#,Asp.net,Controls,我正在尝试创建一个从DropDownList继承的自定义控件 我需要的是向ListItem(在Item集合中)添加一个新属性 如何才能做到这一点?即使从DropDownList继承,也无法添加此属性,因为必须将其添加到ListItem控件。 但问题是ListItem类是密封的,因此您无法从中继承 你能用jQuery扩展客户端的功能吗?你能解释一下为什么需要创建一个定制的control3版本吗?是的,我在给David Robbins的评论中这样做了。是的,我知道它密封了。。。但是我能做什么呢?
如何才能做到这一点?即使从DropDownList继承,也无法添加此属性,因为必须将其添加到ListItem控件。
但问题是ListItem类是密封的,因此您无法从中继承 你能用jQuery扩展客户端的功能吗?你能解释一下为什么需要创建一个定制的control3版本吗?是的,我在给David Robbins的评论中这样做了。是的,我知道它密封了。。。但是我能做什么呢?有什么解决方法吗?嗯,我不熟悉JQuery:(我需要这个属性来“发出信号”RenderContents以特定方式呈现特定项。当然,我可以通过在Text属性中传递此标志来完成此操作,但这不是干净的。在不查看代码的情况下,我可以提供一个有限的建议,创建一个结构来保存数据-值、描述、变量文本-并将其传递给客户端。创建一个响应单击,接收值,执行查找,然后根据要传递的变量text/“flag”进行操作。如果需要回发,请使用“flag”更新隐藏字段然后在服务器上阅读。重新思考我关于隐藏字段的最后一点评论。像往常一样发回,然后回复服务器上的SelectedItem。同样,如果你必须发回,那就是。我应该解释我正在尝试做什么。我想扩展dropdownlist,并提供一个选项来禁用某个项目。禁用是指阻止它被选中并单击。我计划通过添加新控件的覆盖的RenderContents来执行此操作。因此,我希望项具有一个属性“Disabled”,我可以在设计/运行时设置该属性,然后在RenderContents中,将标记添加到正确的项中。
<cc1:MyDropDownList ID="MyDropDownList1" runat="server">
<asp:ListItem myProperty="true" text="sometext" ... />
</cc1: MyDropDownList>