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 :

Ajouter des champs dans un formulaire.


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Ajouter des champs dans un formulaire.
    Bonjour,

    Voila j'ai un formulaire avec des champs textbox(2).
    J'ai crée mon web user cotnrol pour représenter ces deux textbox.
    Dans mon formulaire j'ai un bouton qui ajoute une fois ce control utilisateur.

    Problème :

    Quand je clique sur un bouton (du genre envoyer ou meme "ajouter une ligne"), la page se reinitialise (tout les control affichés sont ceux présent de base dans le .aspx).Du coup :

    - je ne peut pas ajouter plus d'une ligne
    - je ne peut pas accéder aux donnée entrée dans les champs ajoutés (par l'utilisateur).

    Code invoqué lors de l'appui le bouton "ajout d'une ligne"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    protected void ajouter_une_ligne(object sender, EventArgs e)
        {
                 ligne l = (ligne)Page.LoadControl("~/ligne.ascx");
    //panel2 est un panel dans mon formulaire
                Panel2.Controls.Add(l);
    Panel1.Update();   
            }        
     
        }
    mais dans le code que j'utilise apres un lick sur le bouton "enregistrer", je n'arrive pas a retrouver les valeurs insérée dans les champs rajouté

    voila, si vous avez compris ....

  2. #2
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Ceci est parfaitement normal.

    Renseigne toi sur le "cycle de vie d'une page/d'un web control"
    Tu verra que chaque appel au code behind fait automatiquement un postback, ce qui entraine la réinitialisation de ta page/webcontrol et donc des controls fils.

    Si tu veut mémoriser les champs saisis par l'utilisateur, il te faut le faire avant la réinitialisation, et je te conseille de le faire dans une classe dite de Modèle, qui mémorisera tous tes champs (voit la comme un dépot de données tout bete). Arrange toi pour que cette classe soit serializable, tu pourra ainsi la passer dans le ViewState / en Session si tu en as besoin.

    N'hesite pas à faire 2 - 3 recherches sur le cycle de vie, le ViewState, etc...

    C'est très instructif

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup. Quand on a commencé (comme ebaucoup) la prog web par le php on a du mal a capter ce fonctionnement.

    Vais faire ces recherches la

  4. #4
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Pas de problème, c'est normal.

    Reviens par ici en cas de question précise

  5. #5
    Invité
    Invité(e)
    Par défaut
    Alors voila je commence a comprendre :

    Quand on ajoute des champs via un click sur un bouton par exemple (auxquels il faut donner des id unique par programmation), il faut ensuite initialitser ces champs la dans Page_Init, car c'est apres cette méthode que le framework associe les ID des controle aux valeurs envoyée par le client.

    1/init des controle de l'aspx avec leur valeur de base
    2/appelle page_init <-- ici qu'on insère nos controle
    3/associe Id controle et valeur postée
    4/page_load
    5/(peut etre) méthode appellée par l'évènement lancé (click sur un bouton, selection etc).

    Donc il faut bien se souvenir que les methode du style page_init ou page_load sont appelée meme apres un évènement, meme en ajax, et que notre methode click_sur_bouton(object sender,eventargs e) n'est appelée que apres ! (et ce deroulement se fait aussi si j'utilise click_sur_bouton dans mon code).

    Voila j'espère que ça aura éclairé des lanternes, et si je me suis trompé, corrgiez moi

  6. #6
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Donc il faut bien se souvenir que les methode du style page_init ou page_load sont appelée meme apres un évènement, et que notre methode click_sur_bouton(object sender,eventargs e) n'est appelée que apres ! (et ce deroulement se fait aussi si j'utilise click_sur_bouton dans mon code).
    Oui.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Donc il faut bien se souvenir que les methode du style page_init ou page_load sont appelée meme apres un évènement, meme en ajax, et que notre methode click_sur_bouton(object sender,eventargs e) n'est appelée que apres ! (et ce deroulement se fait aussi si j'utilise click_sur_bouton dans mon code).
    Pas si sur... L'ajax ne fait pas de retour serveur, donc pas de postback, donc pas de reload de la page (en tous cas c'est comme ca que je l'ai comris, me trompe ptet !)

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

Discussions similaires

  1. Ajouter + supprimer - des champs dans un formulaire
    Par tmedtcom dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/05/2012, 10h20
  2. Ajouter des champs dans un formulaire
    Par tic_tac dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/04/2011, 09h46
  3. Ajouter des champs dans un formulaire
    Par king10481 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/04/2008, 09h15
  4. Ajouter des champs dans un formulaire
    Par Luffy Duck dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/05/2006, 10h30
  5. Ajouter des CHAMPS dans une table via ASP
    Par hysteresis dans le forum Access
    Réponses: 1
    Dernier message: 27/09/2005, 15h39

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