【发布时间】:2012-08-18 00:47:35
【问题描述】:
我设计了一个自定义复合控件。为简单起见,假设它看起来像这样:
Public Class MyCustomControl
Inherits CompositeControl
Private _textbox As TextBox
Public Property Text As String
Get
EnsureChildControls()
Return _textbox.Text
End Get
Set(value As String)
EnsureChildControls()
_textbox.Text = value
End Set
End Property
Protected Overrides Sub CreateChildControls()
_textbox = New TextBox() With {.ID = "textbox"}
Controls.Add(_textbox)
End Sub
现在我试图让MyCustomControl 的消费者使用RequiredFieldValidator 以确保在提交表单时(在客户端)填写内部_textbox。
我尝试过的:
- 将
<ValidationProperty("Text")>添加到MyCustomControl类并在RequiredFieldValidator上使用ControlToValidate="customControlID"(请参阅here) - 通过
ControlToValidate="customControlID:textbox"和ControlToValidate="customControlID_textbox"直接附加验证器 - 为
MyCustomControl添加了一个IsRequired属性,该属性将它自己的RequiredFieldValidator添加为带有.ControlToValidate = _textbox.ID的子控件
第三种方法似乎确实有效(有一些我尚未调查的 javascript 错误),但我真的希望第一种方法有效(使用 ValidationProperty 属性)。
TLDR:有什么方法可以使用ValidationProperty 属性在自定义复合控件上实现客户端验证?
【问题讨论】:
标签: asp.net vb.net validation user-controls