1
我设计了一个自定义复合控件。为简单起见,假设它看起来像这样:自定义复合控件上的RequiredFieldValidators
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"
- 加入
IsRequired
属性到MyCustomControl
它增加了它自己的RequiredFieldValidator
作为子控件.ControlToValidate = _textbox.ID
第三种方法似乎工作(有一些JavaScript错误,我还没有看过),但我真的想让第一种方法工作(使用ValidationProperty
属性)。
TLDR:有没有什么办法可以使用ValidationProperty
属性来实现客户端对自定义组合控件的验证?
我正在使用'ValidationSummary'显示错误,以及'RequiredFieldValidator'的'ErrorMessage'属性。当我提交页面时,无论文本框的值如何,它都会通过。 – jbabey
看到这个SO链接,它可能是你的问题:http://stackoverflow.com/questions/9677883/validation-summary-not-showing – N0Alias
验证总结工作正常,如果我在普通的'输入使用相同的'RequiredFieldValidator'键入=“文本”框没有复合控制。 – jbabey