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

  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 !)

  7. #7
    R�dacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par d�faut
    Citation Envoy� par hed62 Voir le message
    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 !)
    Pour moi, tu te trompes mais pas s�r � 100%

  8. #8
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activit� : IT Analyst & Software Developer
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par d�faut
    Citation Envoy� par lutecefalco Voir le message
    Pour moi, tu te trompes mais pas s�r � 100%
    Je confirme qu'il se trompe.

    En fait, m�me avec une requ�te Ajax, l'ordre des �v�nements d'une Page Asp.NET est respect�.. soit le Init, Load, ...

  9. #9
    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
    Mais dans ce cas, seule une partie de la page se recharge ? sinon je n'ai pas compris l'interet d'ajax...

    Pour moi ajax est une nouvelle techno (ou plutot une nouvelle utilisation de techno anciennes, a savoir xml + JS principalement) pour �viter d'avoir trop d'aller retours serveur.

    Donc si il n'y a pas de retour serveur, pour moi il n'y a pas de reload de la page cot� serveur, juste un reload d'un fragment de la page, cot� client ?

    A quel endroit je me trompe ?

  10. #10
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activit� : IT Analyst & Software Developer
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par d�faut
    Visuellement, oui.

    En fait, une requ�te AJAX est une requ�te qui est envoy�e au serveur en arri�re plan via JavaScript. Arriv�e au serveur, elle est trait�e tout � fait comme une requ�te normale. Sauf que dans cette requ�te, on aura pr�cis� la m�thode (ou �v�nement) � invoquer et ce qui sera renvoy� ne sera pas le rendu de la page, mais la valeur retourn�e par cette m�thode qui doit donc renvoyer soit du texte brut, soit du XML.

    De retour c�t� client, c'est au navigateur, via javascript, � mettre � jour la page (ou la zone concern�e) avec les informations retourn�es.

  11. #11
    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
    Ok, je pensais que l'appel au servuer n'�tait pas fait. Merci pour ces �claircissements

  12. #12
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activit� : IT Analyst & Software Developer
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par d�faut
    Avec plaisir :-)

  13. #13
    Invit�
    Invit�(e)
    Par d�faut
    J'ai fait ces observations en mettant des points d'arret partout avec le debbugger et effectivement j'ai �t� surpris de voir des passages par page_load meme avec ajax.

    Connaissez vous des m�thodes pour ne pas faire ceci ? ou est ce qu'on est oblig� de passer via des webservices ?

  14. #14
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activit� : IT Analyst & Software Developer
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par d�faut
    Qu'y-a-t'il de g�nant � passer par ces m�thodes ?

  15. #15
    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
    Il veut peut etre parler des perte de perf a cause des aller retour serveur... Mais bon je ne penses pas qu'on puisse faire autrement.

    [ah, si , on peut : faire un client lourd ]


  16. #16
    Invit�
    Invit�(e)
    Par d�faut
    Ben exactement, c'est un probl�me de perf Ce qui est bien (aussi) avec ajax c'est de ne pas avoir a recharger tout une page pour avoir notre resultat, et c'est ce qu'on fait avec les webservices : je demande �a et je ne veut que �a.

    Pour ajouter un peu au sujet (qui pourrait faire un bon tuto je pense) :

    lorsquo'n veut recuperer les cotnrole ajout� dynamiquement, il faut le faire avec la methode FinControl(id_dynamique), du controle (un panel par ex) dans lequel on a ajout� notre controle dynamique.

    Car j'ai essay� avec this.FindControl() de ma page et ca trouvait rien ^^

  17. #17
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activit� : IT Analyst & Software Developer
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par d�faut
    Il y a une mauvaise interpr�tation d'AJAX l�..

    AJAX ce n'est pas du chargement conditionnel de page... C'est une requ�te qui est effectu�e en arri�re plan. Il est tout � fait possible (m�me si ce n'est pas l� son int�r�t principal) de charger une page compl�te avec AJAX.

    Une requ�te AJAX est similaire � une requ�te effectu�e avec un navigateur.. Bien utilis�, cela permet effectivement de ne "modifier" que certaines parties d'une page.. mais c�t� serveur, c'est trait� exactement comme si il s'agissait d'une demande de page compl�te.

  18. #18
    Invit�
    Invit�(e)
    Par d�faut
    J'avais bien compris Mais y a t il un moyen, tout comme l'on fait lorsque on utilise httprequest directement, de dire "En cliquant sur ce bouton ca envoi une requ�te vers tel page" ?

    Car actuelement avec ce framework on a un updatepanel qui intercepte les demande, fait une requ�te (vers sa page source) et la reaffiche.Ajax perd �norm�ment d'interet a mes yeux, on y gagne que la disparition du petit clignotement de l'�cran ... pour moi l'interet d'ajax est : les perf cot� serveur (pas recharger tout une page pour afficher juste "ce machin chose n'est pas valide"), et la bande passante (un chti fichier xml ca p�se moi que tut le contenu d'une page).

  19. #19
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activit� : IT Analyst & Software Developer
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par d�faut
    Ce qu'il se passe lors d'une requ�te Ajax vers une page asp.net, c'est qu'une page Asp.net pour �tre valide, doit passer par une s�rie d'�v�nements (PreInit, Init, etc..) qui va en construire les diff�rents contr�les (notamment) afin de les rendre accessibles (pour rappel, le web �tant stateless, lorsqu'une page est envoy�e au client, elle est aussit�t "oubli�e" du serveur)

    Avec le Framework, l'int�r�t d'Ajax n'est pas d'�conomiser du temps serveur, mais plus de la bande passante - En effet, lors du retour seule les informations � mettre � jour sont renvoy�es et non toute la page.. m�me si celle-ci a �t� trait�e c�t� serveur - et du confort visuel c�t� client.

    Cela permet d'�viter de devoir recharger toute une page lorsque seule une petite information doit �tre mise � jour.

    Maintenant, pour que seule une petite m�thode soit invoqu�e suite � une action, je pense qu'il vaut mieux regarder du c�t� des WebServices.

    Peut-�tre est-il possible d'invoquer un WebService via Ajax, l� je n'en sais rien, mais �a doit surement �tre faisable.

  20. #20
    Invit�
    Invit�(e)
    Par d�faut
    http://msdn.microsoft.com/msdnmag/is...lt.aspx?loc=fr

    J'ai pas tout lu, mais a mon avis y'a une partie de la r�ponse ici

+ 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