如何判断控件或控件界面是否可由用户编辑?

我正在遍历一系列控件,并且需要知道最终用户可以使用哪些控件(通过JavaScript或直接)更改要回发的值的控件.在哪里可以找到这样的清单?

到目前为止,我有这个:

Private Function IsEditableControl(ByVal control As Control) As Boolean
    Return TypeOf control Is IEditableTextControl _
     OrElse TypeOf control Is ICheckBoxControl _
     OrElse GetType(ListControl).IsAssignableFrom(control.GetType()) _
     OrElse GetType(HiddenField).IsAssignableFrom(control.GetType())
End Function

解决方法:

我相当确定您只需要知道该控件是否实现IPostBackDataHandler.

Public Shared Function IsControlEditable(ByVal ctrl As Control) As Boolean
    Return TypeOf ctrl Is IPostBackDataHandler
End Function

“如果要让服务器控件设计为检查客户端发布回服务器的表单数据,则必须实现IPostBackDataHandler接口.此接口定义的协定允许服务器控件确定是否应更改其状态为:回发的结果,并引发相应事件.”

这些是实现它的类:

>复选框
> CheckBoxList
>下拉列表
> HtmlInputCheckBox
> HtmlInputFile
> HtmlInputHidden
> HtmlInputImage
> HtmlInputRadioButton
> HtmlInputText
> HtmlSelect
> HtmlTextArea
>图像按钮
>列表框
> RadioButtonList
>文字框

检查实现IPostBackDataHandler的最大好处是,您的函数将来也可以使用(将添加到框架中的控件)以及第三方控件.

上一篇:C#-单击下拉菜单的箭头/下拉菜单的延迟加载,加载下拉列表


下一篇:Java Ribbon-活动项目-火烈鸟的替代品