カスタム複合コントロールを設計しました。簡単にするために、次のようにします。
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
今私は、消費者がMyCustomControla を使用して、(クライアントで) フォームが送信されたときにRequiredFieldValidator内部が確実に入力されるようにしようとしています。_textbox
私が試したこと:
- クラスに を追加し、
<ValidationProperty("Text")>で使用します(こちらを参照)MyCustomControlControlToValidate="customControlID"RequiredFieldValidator - バリデーターを直接アタッチする
ControlToValidate="customControlID:textbox"だけでなく、ControlToValidate="customControlID_textbox" - 子コントロールとして自身を追加する
IsRequired属性を追加MyCustomControlRequiredFieldValidator.ControlToValidate = _textbox.ID
ValidationProperty3番目のアプローチは機能しているように見えますが(まだ調べていないjavascriptエラーがいくつかあります)、最初のアプローチを(属性を使用して)機能させたいと思っています。
TLDR:ValidationProperty属性を使用して、カスタム複合コントロールでクライアント側の検証を行う方法はありますか?