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