C'est de ma propre réponse here.
Pour permettre la validation d'un contrôle utilisateur personnalisé, la première chose à ajouter est l'ajout de <ValidationPropertyAttribute("value")>
. Ceci spécifie la propriété qui fournit la chaîne à valider, où "valeur" est le nom de la propriété.
Deuxièmement, la propriété ControlToValidate=""
du contrôle de validation sur la page doit être l'ID du contrôle utilisateur, deux points (:), puis l'ID du contrôle auquel la valeur est associée.
Par exemple, j'avais un contrôle nommé cboTask qui avait <ValidationPropertyAttribute("value")>
défini en son sein où la valeur était une propriété qui renvoyait la valeur actuelle d'un DropDownList (DropDownList1) qui était contenue dans cboTask. Afin de valider que l'utilisateur a sélectionné une option j'ai utilisé le RequiredFieldValidator avec le 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
et
<asp:RequiredFieldValidator ID="rfvTask"
runat="server"
ErrorMessage="Task cannot be blank"
InitialValue=""
ControlToValidate="cboTask:DropDownList1"
ValidationGroup="page">*</asp:RequiredFieldValidator>
Vous voulez ceci à postback ou sur le client? –
asp n'est pas asp.net. retag s'il vous plaît – JumpingJezza