IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#] conserver les données saisies dans un ancien formulaire


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 19
    Points : 14
    Points
    14
    Par défaut [C#] conserver les données saisies dans un ancien formulaire
    Bonjour,

    Je développe une application Web où un utilisateur doit remplir
    4 formulaires à la suite.
    Ces formulaires sont reliés entre eux par des liens (LinkButton) "précédent" et "suivant" en bas de page.

    Quand l'utilisateur rempli le 2ème formulaire il devrait pouvoir
    revenir sur le premier et garder les infos déjà saisies dans celui ci.
    Or quand on fait cela, le formulaire n°1 est réinitialisé avec des champ vides

    Pourtant j'ai déjà coder la condition if (!Page.IsPostBack) {...}
    dans la fonction Page_Load pour initialiser les champs pour sa première
    apparition uniquement

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Salut,

    Si ces quatres formulaires sont dans 4 pages différentes alors ce qui se passe est normal : qd l'utilisateur clique sur ton lien qui pointe vers la page précédente alors ce n'est pas un post qui a lieu, mais un get. Donc coté serveur la propriété IsPostBack est à false, normal.

    Je vois deux solutions a ton probleme :

    1) tu laisses tes quatre formulaires dans des pages différentes, sur le clique sur un des linkButton tu sauves les données saisies dans la session, puis tu rediriges vers la page suivante ou précédente. Qd tu arrives sur une de ces page par contre, que tu sois en postback ou pas, tu regardes s'il y a des données en session pour le formulaire courant, si oui alors tu remplis tes controles avec ces données.

    2) tu mets tes 4 formulaires dans 4 userControls. tu mets ces 4 userControls dans la meme page, et tu joues avec leur propriété Visible. Du coup qd il clique sur un de tes liens, toi tu n'as qu'a rendre le UserControl actuel invisible et rendre le suivant ou précédent visible.

    Voila.

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    2) tu mets tes 4 formulaires dans 4 userControls. tu mets ces 4 userControls dans la meme page, et tu joues avec leur propriété Visible. Du coup qd il clique sur un de tes liens, toi tu n'as qu'a rendre le UserControl actuel invisible et rendre le suivant ou précédent visible.
    Si j'utilise cette méthode j'aurai accès à toutes les données des 4 formulaire en meme temps dans une seul pages ?

    Si c'est le cas, c'est exactement ce qu'il me faut car à la dernière étape
    je voudrais récupérer toutes les données des 4 formulaires pour créer un objet dans un annuaire LDAP

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Avec ces deux solutions tu auras accés aux données des 4 formulaires :

    methode (1) : les données sont dans la session

    methode (2) : les données sont effectivement directement accessibles dans les controles contenues par tes userControls.

    La deuxieme solution est surement la plus simple, elle est assez "propre" également puisque tu ne mets rien dans la session. Le seul inconvenient c'est que tes 4 userControls etant dans la meme page, celle-ci risque d'avoir un viewState assez conséquent, ça depend de la taille de tes formulaires. Mais a mon avis à moins qu'il n'y ait des centaines de controles dans tes formulaires, çà devrait le faire sans probleme

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Merci Sphax, j'ai utilisé la 2ème méthode avec les UserControl

    j'ai un dernier problème avec mes liens "suivant" "précédent"
    de chacun des UserControl
    dans le traitement on_click du lien suivant du 1er formulaire
    j'arrive facilement à le rendre invisible en faisant un
    par contre, pour passer au formulaire 2 je ne sait pas comment m'y prendre pour accéder à l'instance du form2 pour faire un truc du genre Sinon le ViewState c'est bien ce qui me sert à récuperer la valeur des
    controles des 4 formulaires ? (désolé je débute en ASP.NET )[/code]

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Ben moi a ta place j'aurai sorti tes deux liens suivant et precedant des 4 Usercontrols pour les mettre simplement dans la page, dans ta page tu as donc :

    - tes 4 usercontrols sans lien suivant ou precedent
    - tes deux liens suivant et precedant

    Ensuite tu as besoin d'une variable, que tu peux mettre en session par exemple qui t'indique quel est le formulaire visible en ce moment (tu peux aussi parcourir chaque UserControl et regarder la propriété Visible). Qd l'utilisateur clique sur un lien, cette fois un événement est levé dans la page, tu determines quel controle est visible, tu le rends invisible, et tu rends visible l'autre. Est ce que c'est a peu prés clair ?

    Le viewstate est une collection de valeur qu'asp.net utilise pour maintenir l'etat des controles d'un postback a un autre (aller retour vers le serveur). Par exemple si tu as un TextBox dans ta page, qd l'utilisateur le rempli et clique sur un bouton, ya un aller / retour vers le serveur qui a lieu. Qd la page revient vers le client, il retrouve la valeur qu'il avait rempli dans sa textbox sans que ne fasses rien. C'est grace au viewstate. Par contre toi coté serveur, t'as pas vraiment a y toucher, tu recupere les valeurs qu'ily a dans tes controls directement dans tes controles, comme MaTextBox.Text par exemple. J'espere encore une fois etre clair

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    D'accord,
    tout était clair je te remercie encore pour ton aide

  8. #8
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634

    Didier Danse

    Most Valuable Profesionnal SharePoint
    Microsoft Certified Application Developer
    Mes articles sur developpez.com
    Mon site perso


  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Merci Sphax,
    tout marche nickel, j'ai mis les 4 UserControls dans une page principale
    qui contient les liens "suivant" "précédent"

    Merci Ditch pour ton lien

    Problème Résolu


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/06/2014, 15h53
  2. Réponses: 3
    Dernier message: 11/01/2009, 11h13
  3. Réponses: 3
    Dernier message: 05/09/2008, 07h41
  4. Réponses: 2
    Dernier message: 19/06/2008, 20h04
  5. Recuperer les données saisie dans un formulaire
    Par hunzi dans le forum XMLRAD
    Réponses: 3
    Dernier message: 29/08/2006, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo