_ResteAPayer = CalculerReste() 'sub qui renvoie un Double
Return
_ResteAPayer
End
Get
Set(ByVal value)
_ResteAPayer = value
End
Set
End
Property
Je mets dans la page un CompareValidator avec la propriété controlToValidate MonControleUtilisateur.ID et les autres propriétés (dont le ValidationGroup du bouton d'inscription)...
Tout marche bien :
le valideur affiche bien le message d'erreur si la propriété ResteAPayer n'est pas nulle,
au débogage, Page.IsValid renvoie bien False,
mais ça ne bloque pas l'inscription, les instructions d'inscription s'exécutent quand même ...
J'ai du insérer le code
ElseIf e.CommandName = "Updater"Then
If
Not
Me.IsValid ThenExitSub
Je précise que tout ça est dans un UpdatePanel... hum hum pourtant, j'ai tout fait ce qu'il faut pour que les valideurs marchent avec ajax.
Comment faire pour que les valideurs bloquent ?
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 20 nov. 2008 à 22:38
Bonsoir,
le code que tu montres se trouve ou ? dans le page_load ? si oui, c'est normal ? si c'est dans le btn_click, de mémoire c'est normal si tu ne met pas de validationgroup à ton button.
Sinon je te conseille quand meme de toujours faire un page.validate puis un page.IsValid, ca ne coute pas grand chose et c'est plus prudent.
SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010 21 nov. 2008 à 06:16
bonjour,
merci de ta réponse.
le code cité plus haut est simplement en tête de la classe
<ValidationPropertyAttribute("ResteAPayer")> Partial Class MonControleUtilisateur
InheritsSystem.Web.UI.UserControl<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
puis dans les propriétés :
PublicProperty ResteAPayer ()
as Double
etc...
le bouton d'enregistrement n'est pas dans le ControlUtilisateur, mais dans le formView qui le contient : un classique bouton avec CommandName "Insert" ou "Update".
En fait, je ne sais pas quand déclencher le page.validate car je le confirme, la commande s'exécute malgré un Page.IsValid =False
Je précise que j'ai ajusté le ValidationGroup, et malgré ça...
J'ai également retiré le Controle utilisateur de l'UpdatePanel, aucun changement.
Je me souviens vaguement avoir déjà rencontré et résolu ce problème mais je bute.
ce n'est cependant pas très grave, puisque ça marche avec
If
NotMe.IsValid ThenExitSub
Cependant, j'aurais aimé que le script-client fonctionne, question d'élégance... et de rapidité.
SuperBouly
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 21 nov. 2008 à 09:19
le script client ne peux pas fonctionner puisqu'il s'agit d'une variable coté serveur ...
le page.Validate est à executer juste avant le page.isvalid.
page.Validate();
if (page.IsValid()){
// do
}
Pour le validationGroup, normalement si ton button a un validationgroup et ton contrôle aussi alors ca devrait pas déclencher le button_click, mais je suis pas sur de moi.
SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010 21 nov. 2008 à 09:37
oui, bien vu pour la variable côté serveur
Pour le validationGroup, je ne vois pas comment attribuer un ValidationGroup à un UserControl.
Pour l'instant, j'ai mis une textBox (style position:absolute; top:-3000px;) qui prend la valeur de mon UserControl au moment du calcul serveur. Un CompareValidator surveille sa valeur, les deux sont du bon ValidationGroup et en dehors de l'UserControl De cette façon, je bénéficie de la validation-client sur la textbox, au moins au moment de l'inscription.
En attendant + satisfaisant...
SuperBouly