其他分享
首页 > 其他分享> > 如何判断控件或控件界面是否可由用户编辑?

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

作者:互联网

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

标签:controls,asp-net,vb-net,c
来源: https://codeday.me/bug/20191208/2095194.html