我正在遍历一系列控件,并且需要知道最终用户可以使用哪些控件(通过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的最大好处是,您的函数将来也可以使用(将添加到框架中的控件)以及第三方控件.