Это из моего собственного ответа здесь .
Чтобы разрешить проверку пользовательского элемента управления, первое, что требуется, это добавление <ValidationPropertyAttribute("value")>
. Это указывает свойство, которое предоставляет проверяемую строку, где «значение» - это имя свойства.
Во-вторых, свойство ControlToValidate=""
элемента управления проверки на странице должно быть идентификатором пользовательского элемента управления двоеточием (:), а затем идентификатором элемента управления, с которым связано значение.
Например, у меня был элемент управления cboTask, в котором было определено <ValidationPropertyAttribute("value")>
, где value было свойством, которое возвращало текущее значение DropDownList (DropDownList1), которое содержалось в cboTask. Чтобы проверить, что пользователь выбрал опцию, я использовал RequiredFieldValidator с ControlToValidate="cboTask:DropDownList1"
.
<ValidationPropertyAttribute("value")> _
Partial Public Class ctlDropDownList
Inherits System.Web.UI.UserControl
Public Property value() As String
Get
Return DropDownList1.SelectedValue.Trim()
End Get
Set(ByVal value As String)
Dim llistitem As ListItem
DropDownList1.ClearSelection()
For Each llistitem In DropDownList1.Items
If RTrim(llistitem.Value) = RTrim(value) Then
llistitem.Selected = True
Exit For
End If
Next
End Set
End Property
End Class
и
<asp:RequiredFieldValidator ID="rfvTask"
runat="server"
ErrorMessage="Task cannot be blank"
InitialValue=""
ControlToValidate="cboTask:DropDownList1"
ValidationGroup="page">*</asp:RequiredFieldValidator>