[ASP .net][C#] Probleme de postback après appui sur bouton

emachede Messages postés 27 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 28 juin 2005 - 24 juin 2005 à 17:17
emachede Messages postés 27 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 28 juin 2005 - 28 juin 2005 à 15:29
bonjour,

je développe une application web en asp net et C#
j'utilise un placeholder sur ma page d'accueil
dans ce placeholder, j'appelle un user control qu correspond à une procédure d'authentification: on entre son login, son password et on clique pour valider
quand les données sont bonnes, ce bouton doit ré-afficher ma page d'accueil en passant en parametre l'url du nouvel user control à afficher dans le placeholder
j'ai donc 1 page aspx avec 1 placeholder qui peut appeler 2 user control différents suivant une variable

Mon problème vient du fait que quand je clique sur le bouton de validation (login pass), ça me fait un postback immédiat de ma page d'accueil
mon test de vérification n'est meme pas exécuté!
et je vois donc ma page d'accueil rappellée mais avec un placeholder vide!

comment se sortir de ce pétrain?
merci

ça peut toujours être pire

11 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
24 juin 2005 à 18:49
En fait, le problème vient que quand tu cliques sur le bouton, la page fait un postback sur la page, et comme tu instancie ton usercontrol par le code, tu vas instancier ton control aprés que lui ai pu aller chercher l'uc, je sais pas si tu vois le truc, mais met un point d'arret tu verras mieux le problème :p

la solution est de mettre tes 2 UC dans ta page, comme ca ils seront instancié des le debut de la requete, puis tu fais un visible = true ou false suivant les cas ...

à noter qu'en .net 2 il y a un control de sympa qui fait juste ca, il s'appelle le multiview je crois :) ca evite juste de mettre à chaque fois tous tes visible à false excepté un ...


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
emachede Messages postés 27 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 28 juin 2005
27 juin 2005 à 16:01
pour tenter de résoudre le schimlblick, j'ai inséré mes 2 usrctrls dynamiquement
pb:
pour mon premier usrctrl, il me signale à l'execution qu'il faut une balise form runat=server pour encadrer ma balise asp:label
sympa mais quand je lui mets, il rale car pour lui y'a deux balises form !
(surement celle de webform1;aspx et la nouvelle)
0
emachede Messages postés 27 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 28 juin 2005
27 juin 2005 à 16:39
truc de plus:
c le fait d'avoir un bouton dans un usercontrol dans un placeholder?
ou simplement le fait d'avoir un bouton dans un usercontrol?
qui provoque le postback...
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
27 juin 2005 à 16:39
mais pourquoi veut tu absolument mettre tes UC dynamiquement ?

tu met dans le code

puis dans ton code, au lieu de faire un me.controls.Add(chose1) tu fais un chose1.visible = true

la je vois vraiment pas pourquoi tu as envie de te compliquer la vie ! ?


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0

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

Posez votre question
emachede Messages postés 27 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 28 juin 2005
27 juin 2005 à 17:33
"envie de te compliquer la vie "
ah pk visual est compliqué parfois ! (lol)

j'ai donc fait ce que tu me conseilles dans ton dernier post mais
si je fais chose1.visible = true
chose 1 est introuvable pour Mr Visual !
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
27 juin 2005 à 18:40
il faut declarer chose1 dans le code de ta classe

protected withEvents chose1 as Chose

ce petit "problème" n'est plus d'actualité dans Visual Studio 2005


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
emachede Messages postés 27 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 28 juin 2005
28 juin 2005 à 13:47
je suis en c#
donc j'ai regardé l'équivalent de withEvents:
c [event] += New System.EventHandler([eventHandler])

chtit souci:
- quel événement je mets?
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
28 juin 2005 à 13:53
protected Chose chose1;

puis vu que tu te sert pas des events de ton controle t'as pas besoin de mettre un withEvents ou de t'abonner aux events ...

regarde ce qu'ecrit pour toi VS pour mieux comprendre ...


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
emachede Messages postés 27 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 28 juin 2005
28 juin 2005 à 14:46
ça y est j'y suis presque, grace à toi
donc quand je rentre les bons login et pass, je mets un this.Visible = false;
pour le userctrl d'authentification
quand la page d'accueil est rechargée je lui dit dans le code de cette meme page:


if(
this.WbUsrCntrlAccueilAuthentif1.Visible ==
false)

this.WbUsrCntrlPresentation1.Visible =
true;

le souci c qu'après verif, la condition n'est pas vérifiée

question pkoi? puisque je viens de le mettre à false, il croit qu'il est encore à true!
comme dans le html en somme.
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
28 juin 2005 à 14:55
c'est exactement le meme problème qu'avant, quand tu as un postback, ce qu'il faut comprendre c'est que la page est entierement rechargé, comme si c'etait la premiere requete de la page ... montre moi ton code, si tu veux que je t'explique plus en détail ...


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
emachede Messages postés 27 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 28 juin 2005
28 juin 2005 à 15:29
quand on clique sur le bouton de validtion dans le usercontrol d'authentification

if(VerifierIdentite(txtbxIdentifiant.Text,txtbxPassword.Text))
this.Visible = false;
else
AfficherMessage("Identification Erronnée");

dans la page d'accueil:


private void Page_Load(object sender, System.EventArgs e)
{
if(this.WbUsrCntrlAccueilAuthentif1.Visible == false)
this.WbUsrCntrlPresentation1.Visible = true;
}

merci de ton aide
0
Rejoignez-nous