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 :

[ASP/C#] récupérer l'id d'un bouton dans une autre page


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur en alternance
    Inscrit en
    Février 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur en alternance

    Informations forums :
    Inscription : Février 2011
    Messages : 107
    Par défaut [ASP/C#] récupérer l'id d'un bouton dans une autre page
    Bonjour à tous,

    Pour être plus claire, j'ai une liste de boutons qui apparaît à l'écran et lorsque je clic sur l'un d'eux, je me dirige vers une autre page qui m'affiche une autre liste de boutons correspondant au bouton que sur lequel j'ai cliqué d'où l'intérêt de récupérer l'id. J'ai trouvé quelque solution sur le net mais je pense mal les exploiter.

    Dans un premier temps, voici se que je fais dans ma première page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Button monBtn = new Button();
                    monBtn.Height = 100;
                    monBtn.Width = 1000;
                    monBtn.ID = rowPole["ID"].ToString();
                    ViewState["ID"] = monBtn.ClientID;
                    monBtn.Text = rowPole["LIBELLEFR"].ToString();
                    Page.FindControl("form1").Controls.Add(monBtn);
                    monBtn.PostBackUrl = "page_deps.aspx";

    Puis dans un deuxième temps, j'essaie de récupérer l'id dans la page suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string idDep = PreviousPage.FindControl(ViewState["ID"].ToString());
    Mais je n'arrive pas à trouver la bonne syntaxe! Si quelqu'un à un peu de temps à me consacrer pour m'aider ça serrait sympas .
    Merci beaucoup.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 220
    Par défaut
    Tu ne pourrais pas passer l'ID de ton controle par l'url?

    un truc comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monBtn.PostBackUrl = "page_deps.aspx?Bouton=" + monBtn.ID.ToString();

  3. #3
    Membre confirmé
    Profil pro
    Développeur en alternance
    Inscrit en
    Février 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur en alternance

    Informations forums :
    Inscription : Février 2011
    Messages : 107
    Par défaut
    J'y avais pensé mais je n'aime pas trop passer par l'url. Ca marche en effet mais je préfèrerai procéder autrement.


    j'essai comme ceci 1er page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Button monBtn = new Button();
                    monBtn.Height = 100;
                    monBtn.Width = 1000;
                    monBtn.ID = rowPole["ID"].ToString();
                    monBtn.Text = rowPole["LIBELLEFR"].ToString();
                    Page.FindControl("form1").Controls.Add(monBtn);
                    monBtn.PostBackUrl = "page_deps.aspx?id="+monBtn.ID;
    2ème page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string idDep = PreviousPage.FindControl("ID").ToString();
    Et il trouve un moyen de me lever une exception :
    Détails de l'exception: System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
    Merci pour ton attention .

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 220
    Par défaut
    Alors peut-etre en passant l'id de ton bouton en session, je crois que le viewstate se vide parfois à voir...

  5. #5
    Membre confirmé
    Profil pro
    Développeur en alternance
    Inscrit en
    Février 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur en alternance

    Informations forums :
    Inscription : Février 2011
    Messages : 107
    Par défaut
    Bon c'est pas gagner...

    Voila mon code :

    1er page


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Button monBtn = new Button();
                    monBtn.Height = 100;
                    monBtn.Width = 1000;
    //ici je donne une valeur à l'id de mon bouton
                    monBtn.ID = rowPole["ID"].ToString();
    //ici je crée une variable de session
                    ViewState["ID"] = monBtn.ID;
                    monBtn.Text = rowPole["LIBELLEFR"].ToString();
                    Page.FindControl("form1").Controls.Add(monBtn);
                    monBtn.PostBackUrl = "page_deps.aspx";
    2eme page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //je récupère ma variable et je l'affecte a idDep
    string idDep = PreviousPage.FindControl((string)ViewState["ID"]).ToString();
    Mais j'ai toujours l'exception!

  6. #6
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Par défaut
    Le viewstate se vide au changement de la page. Essaie plutôt de passer par la session :

    Mise en session :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Session["ID"] = monBtn.ID;
    Récupération de l'info :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string idDep = Session["ID"].toString();

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/07/2010, 12h28
  2. [MySQL] Récupérer la valeur d'un cookie dans une autre page du site
    Par Narutosaad dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 07/06/2010, 22h06
  3. récupérer la valeur d'un bouton dans une pop up
    Par dragon93 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/07/2009, 17h21
  4. Réponses: 0
    Dernier message: 06/02/2009, 20h20
  5. Réponses: 2
    Dernier message: 17/06/2005, 13h38

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