Validation d'un formulaire contenant 2 users controls

Anksunamon Messages postés 12 Date d'inscription jeudi 23 janvier 2003 Statut Membre Dernière intervention 17 juin 2007 - 10 déc. 2003 à 15:53
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 2 nov. 2007 à 10:44
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

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
10 déc. 2003 à 19:17
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

@+
0
crilun Messages postés 114 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 17 octobre 2006
4 août 2005 à 15:00
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
0
quineman Messages postés 72 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 10 novembre 2008
31 oct. 2007 à 18:59
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 !
0
quineman Messages postés 72 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 10 novembre 2008
2 nov. 2007 à 09:23
N'y aurait il pas des améliorations sur le framwork 3.5 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
2 nov. 2007 à 10:44
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
0
Rejoignez-nous