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