Validation d'un formulaire contenant 2 users controls

Signaler
Messages postés
12
Date d'inscription
jeudi 23 janvier 2003
Statut
Membre
Dernière intervention
17 juin 2007
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
Bonjour à tous...

Voici une question qui pourrait intéresser pas mal de monde... je m'explique...

J'ai une page default.aspx qui appelle 2 users controls (insciption à une newsletter et envoyer l'article a un ami, par ex).
Lorsque je clique sur un des boutons des 2 users controls, les validators des 2 users controls sont appelés alors que je n'ai rien programmé de tel.

Ma question est : Comment valider seulement un seul user control, ou alors comment désactiver les validators des users controls qui ne sont pas concernés?

Voici le code de ma page aspx: (simple appel des users controls)

default.aspx :
-----------

<%@ Page Language="VB" %>
<%@ Register TagPrefix="uc0" TagName="newsletter" Src="newsletter.ascx" %>
<%@ Register TagPrefix="uc0" TagName="envoyeraunami" Src="envoyeraunami.ascx" %>

<html>
<head>
</head>

<form runat="server">




</form>

</html>
------------

Voici le code des 2 users controls (simple control de la saisie obligatoire d'un textbox et redirection vers une autre page)

newsletter.ascx :
----------------

<%@ Control Language="VB" %>

<script runat="server">

sub Button1Clicked (s As Object, e As EventArgs)

RequiredFieldValidator1.Validate()

if RequiredFieldValidator1.IsValid then
Response.Redirect ("newsletterok.aspx")
end if

end sub

</script>

Newsletter,

----

E-Mail :

envoyeraunami.ascx :
-------------
<%@ Control Language="VB" %>

<script runat="server">

sub Button2Clicked (s As Object, e As EventArgs)

RequiredFieldValidator2.Validate()

if RequiredFieldValidator2.IsValid then
Response.Redirect ("envoyeraunamiok.aspx")
end if

end sub

</script>

Envoyer l'article a un ami,

----

E-Mail :

------------

J'ai cherché partout une solution à ce problème, j'ai vu pas mal de fois la question posée sur des forums mais aucune réponse viable n'a été donné...

Merci d'avance...

5 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
j'ai aussi eu le meme problème que toi, la solution à été de passer par Javascript, c'est pas chouette mais j'ai rien trouvé d'autre, pour le code il faut le faire suivant la page avec le javascript, j'aime pas du tt cette méthode de programmation donc si quelqu'un a une autre méthode je suis preneur, mais j'ai aussi pas mal cherché et j'ai rien trouvé donc bon courage

@+
Messages postés
114
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
17 octobre 2006

crilun



Salut,

je pense avoir un probleme assez similaire en ce momment,

j'ai 2 pages page1.ascx et page2.ascx, selon le cas j'affiche l'une ou l'autre,

pour cela j'ai cree une 3ieme page qui est ma page de demarrage pageswitch.ascx

dans cette pageswitch.ascx j'ai placé un placeholder, et je charge donc page1.ascx par default

puis un bouton sur page1.ascx me permet de passer a page2.ascx en passant mon numero de page dans l'url.

Jusqu'ici pas de pb,

le probleme que je rencontre est que ma page1.ascx marchait tres bien
jusque la, seulement maintenant qu'elle est contenu dans un placeholder
je n'arrive plus à recuperer des variables postées,

je m'explique:

sur cette page j'ai 2 boutons "valider" et
"enregistrer", à l'aide de la fonction confirm en javascript je demande
la confirmation que l'on est sur de vouloir valider ou enregistrer,

si l'utilisateur confirm je place alors un flag a 1 ou 2 selon le cas
dans une zone de texte ceci toujours en javascript,ma page est alors
soumise,

mais au moment du load de la page jusqu'ici je recuperais bien son
contenu mais la plus rien depuis que j'ai mis la page dans un
placeholder,

pourtant ma zone de texte est bien remplie par mon chiffre et apres le
rechargement de la page elle est bien à nouveau remplie, son contenu ne
semble disparaitre qu'au moment du load de la page ,
meme en soumettant la page plsuierus fois de suite;le contenu de la
zone de texte reste inscrit mais pas moyen de saisir son contenu au
load.est ce que quelqu'un a deja eu le pb svp? Merci
Messages postés
72
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
10 novembre 2008

Pour la validation de textbox, vous pouvez utiliser le MaskedEditExtender avec MaskedEditValidator, il fonctionne très bien avec plusieurs controles ascx dans la meme page. Par contre, pour les validations dotNet natives, rien à faire. Encore plus quand tu veux faire un CustomValidator avec du Javascript. D'ailleurs, Cyril, ya t'il une solution avec le custom validator pour référencé le control genre mettre le javascript dans la page maitre et référencé les control dans les ascx comme suit :
myUserControl.mycontrol.ClientID ? D'ailleurs, as tu trouver des pistes depuis pour gérer ce problème ?

PS : Un question qui n'a rien à voir : Quel update control progress Ajax utilises tu dans ton authentification. (Quand tu clic sur s'identifier, un blocage est fait et un load arrive dans le bouton : c'est très sexy !)

Merci !
Messages postés
72
Date d'inscription
jeudi 30 novembre 2000
Statut
Membre
Dernière intervention
10 novembre 2008

N'y aurait il pas des améliorations sur le framwork 3.5 ?
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Bonjour,

page.FindControl("myUserControl").FindControl("myControl").ClientID ?

J'ai pas relu la question depuis le début mais vouloir validern des controles inter user control, je vois pas vraiment l'interet ...

En ce qui concerne le framework 3.5 ce truc là est une grosse blague ;-) c'est juste .net 2.0 + les assemblies de .net 3 + les assemblies de .net 3.5 + ASP.net Ajax + .net 2.0 SP1 (en gros la correction des bugs)

"PS : Un question qui n'a rien à voir : Quel update control progress Ajax utilises tu dans ton authentification. (Quand tu clic sur s'identifier, un blocage est fait et un load arrive dans le bouton : c'est très sexy !)" pas compris là ?

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant