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#][ASPX] passage de paramètres entre webForm sous une master page


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 93
    Points : 61
    Points
    61
    Par défaut [C#][ASPX] passage de paramètres entre webForm sous une master page
    Bonjour vous !

    j'ai un bête problème :
    dans ma solution, j'ai :
    - une master page : Site1.Master
    - une webForm : WebForm1.aspx
    - une webForm : WebForm2.aspx

    dans ma webform 1:
    1 textBox : (ID = "tbTest")
    1 bouton qui envoie vers webForm2.aspx (
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Server.Transfer("webform2.aspx", true);
    )

    Lorsque je veux récupérer la valeur saisie dans tbTest dans le Page_Load de WebForm2.aspx, en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string test = (string)Request.Params["tbText"];
    ==> j'obtien "null"


    apparemment, le fait d'être sous une master page perturbe le mécanisme de récupération des paramètres.

    comment je peu récupérer ce paramètre ?
    Help !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2005
    Messages : 80
    Points : 89
    Points
    89
    Par défaut
    Les pages d'un master sont dans un élément "Content", as-tu essayé d'appelé ton contrôle avec un préfixe : l'id du Content + _ + id du contrôle.

    Exemple : "c1_tbText"

    Si ça ne fonctionne pas plus, essaie de regarder dans le code source de la première page pour voir quel préfixe le framework a généré pour tes contrôles.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 93
    Points : 61
    Points
    61
    Par défaut
    le préfixe est "ctl00$MasterPage$" + ID du contrôle.

    "MasterPage" est l'ID de ma master mais pour "ctl00" ???


    il n'y a pas de mécanique conventionnelle pour récupérer les données sans avoir à bidouiller un nom d'ID ?

  4. #4
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    Tu devrais plutot dire à ton bouton qu'il doit faire le postback vers ta seconde page.

    Dans le OnLoad de te seconde page, tu peux recupérer les données de la page précédente en utilisant PreviousPage.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 93
    Points : 61
    Points
    61
    Par défaut
    un postback ??

  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    Exactement, un postback.
    Les types boutons en sont affectés.

    DE plus utilise la fonction FindControl pour rechercher les éléments d'une autre page, à condition d'avoir fais un postback.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 93
    Points : 61
    Points
    61
    Par défaut
    sinon, j'ai trouvé un truc un peu plus C# friend :

    dans ta webForm1, tu va dans webForm1.aspx.designer.cs et tu rend Public les contrôles que tu veux récupérer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            /// <summary>
            /// tbTest control.
            /// </summary>
            /// <remarks>
            /// Auto-generated field.
            /// To modify move field declaration from designer file to code-behind file.
            /// </remarks>
            public global::System.Web.UI.WebControls.TextBox tbTest;
    ensuite dans WebForm2, tu utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
             WebForm1 wf = (TestApp.WebForm1)Context.PreviousHandler;
    (en castant le PreviousHandler avec ta form précédente,

    et ensuite tu fais bêtement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     string valeur = wf.tbTest.Text;



    mais c'est quand même incroyable que l'on ne puisse pas récupérer ce UniqueID simplement

    vivement le .Net framework 2053 ...

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

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par Nycos62 Voir le message

    mais c'est quand même incroyable que l'on ne puisse pas récupérer ce UniqueID simplement

    vivement le .Net framework 2053 ...
    Cross Page Posting, 2 min, 3 lignes de code...

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 93
    Points : 61
    Points
    61
    Par défaut
    Il n'y a pas un moyen de forcer la master page à ne pas renommer les ID ?

    car, si l'on travaille avec du JavaScript, quand on veut agir sur un champ, on doit d'abord faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    document.getElementById(' ') 
    //ou bien
    $get('')
    pour récupérer le champ, il faut connaître son ID réel.
    il y a bien sur tout un tas de bidouilles qui consistent par exemple :

    à stocker les UniqueID dans des <input type=hidden ...> généré au runTime donc avec un ID stable. Puis à faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $get($get('hiddenInput1'))
    , mais la bidouille c'est pour les p'tites nouilles

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

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    document.getElementById('<%=tonControl.clientId()%>')

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 93
    Points : 61
    Points
    61
    Par défaut
    tu es grand

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

Discussions similaires

  1. Passage de paramètres entre sous-états
    Par zycomatic dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 28/04/2017, 00h36
  2. Réponses: 3
    Dernier message: 13/06/2012, 00h21
  3. [AC-2003] Passage de paramètres entre 2 sous-états
    Par madmox dans le forum IHM
    Réponses: 2
    Dernier message: 10/08/2010, 09h53
  4. Objet non déclaré sous une master page
    Par mappy dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 03/11/2009, 10h12
  5. Réponses: 9
    Dernier message: 15/04/2009, 15h09

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