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 :

Récuperer variable autre page + DataGrid


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut Récuperer variable autre page + DataGrid
    Bonjour,

    Lorsque je suis sur ma page je souhaite récupérer une variable présente dans une autre page.

    Je ne connais pas la méthode en ASP C#.

    Par exemple:

    page1 :

    page 2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //Récuperer la variable exemple
    D'autre part, j'ai une autre question :

    Je souhaite afficher le résultat de ma requête. Il faut donc que j'utilise un DataGrid, mais mon code ne fonctionne pas et bloque sur la boucle POUR.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     string connString = "Data Source=PIERRE-PC;Initial Catalog=base;Persist Security Info=True;";
            using (SqlConnection cnSQL = new SqlConnection(connString))
            {
                SqlCommand cmdSQL = new SqlCommand();
                cmdSQL = cnSQL.CreateCommand();
                cmdSQL.CommandText = "select * from contenu where contenu like '%recherche%'";
                SqlDataAdapter sqlDA = new SqlDataAdapter();
                sqlDA.SelectCommand = cmdSQL;
                System.Data.DataSet ds = new System.Data.DataSet();
                sqlDA.Fill(ds);
                //Affichage du résultat
                DataGrid dg = new DataGrid();
                dg.DataBind();
                for (int i = 0; i < ds.Tables[0].Rows.Count(); i++)
                {
                    dg.DataSource = ds.Tables[0].Rows[0][i].ToString();
                }
            }

    Merci

  2. #2
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    Salut,
    Essay de mettre ta variable dans la session.

    A+

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    J'y ai pensé mais je me suis dit que ce n'étais peut-être pas terrible. Car je souhaite utiliser cette variable une fois juste pour une requête...

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 484
    Par défaut
    Les pages sont détruites après l'envoi de la réponse au navigateur.
    Il est donc impossible (sauf hacks innommables qui feront très rapidement planté ASP.NET) d'accéder à une autre page puisqu'il n'existe qu'une page par requête utilisateur. La session est LA réponse.

    Un dataGrid supporte, si ma mémoire est bonne, le DataBinding.
    Donc, vous n'avez pas à renseigner ligne par ligne la DataGrid mais juste lui indiqué sa source de données via sa propriété DataSource.
    Un appel à la méthode DataBind devrait être fait après l'affectation de la propriété DataSource.

    Généralement, la Grille est déjà créée via les tags dans le fichier .aspx.

  5. #5
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    Salut,

    essay ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    string connString = "Data Source=PIERRE-PC;Initial Catalog=base;Persist Security Info=True;";
            using (SqlConnection cnSQL = new SqlConnection(connString))
            {
                cnSQL.Open();
                SqlCommand cmdSQL = new SqlCommand();
                //cmdSQL = cnSQL.CreateCommand();
                cmdSQL.CommandText = "select * from contenu where contenu like '%recherche%'";
                cmdSQL.Connection = cnSQL;
                SqlDataAdapter sqlDA = new SqlDataAdapter(cmdSQL);
                //sqlDA.SelectCommand = cmdSQL;
                System.Data.DataSet ds = new System.Data.DataSet();
                sqlDA.Fill(ds);
                //Affichage du résultat
                DataGrid dg = new DataGrid();
                dg.DataSource = ds.Tables[0];
                dg.DataBind();
                //for (int i = 0; i < ds.Tables[0].Rows.Count(); i++)
                //{
                //    dg.DataSource = ds.Tables[0].Rows[0][i].ToString();
                //}
     
            }
    A+

  6. #6
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    Ok je vais tester ça.

    Et pour afficher le données de ce datagrid dans un tableau par exemple?

  7. #7
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    Bonjour,
    la grid est un tableau HTML, et si tu veux afficher la grid dans ta page, il suffit de l'ajouter dans la balise form soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    idDeTaForm.InnerHtml.Control.Add(gd);
    mais, une remarque :
    pourquoi tu n'ajoute pas directement ta grid dans ta page et tu utilise son id sans avoir besoin d'ajouter le code ci-dessus et autre chose, il y à le cotrole GridView du framework 2.0 qui est plus extensible...


    A+

  8. #8
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Mars 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 112
    Par défaut
    Bonjour piero53,

    Lorsque je suis sur ma page je souhaite récupérer une variable présente dans une autre page.
    Si c'était la page précédente, regardes du côté de PreviousPage
    http://msdn.microsoft.com/en-us/library/ms178139.aspx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // Un truc comme ça; CodeBehind/C#
    TextBox tb1 = (TextBox)PreviousPage.FindControl("TextBox1");
    A+

  9. #9
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    Citation Envoyé par AJemni Voir le message
    Bonjour,
    la grid est un tableau HTML, et si tu veux afficher la grid dans ta page, il suffit de l'ajouter dans la balise form soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    idDeTaForm.InnerHtml.Control.Add(gd);
    mais, une remarque :
    pourquoi tu n'ajoute pas directement ta grid dans ta page et tu utilise son id sans avoir besoin d'ajouter le code ci-dessus et autre chose, il y à le cotrole GridView du framework 2.0 qui est plus extensible...


    A+
    Je sais bien^^ C'est juste que cette requête se fait lors d'un évènement.

    Sinon pour le "idDeTaForm", qu'est-ce-que tu entends par là?

    C'est la seule solution pour afficher mon datagrid?

  10. #10
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    Bonjour,
    l'id de la balise form de la page aspx.

    A+

Discussions similaires

  1. Recuperer variable autre page
    Par piero53 dans le forum Langage
    Réponses: 7
    Dernier message: 10/06/2009, 14h17
  2. [1.x] récuperation d'une variable dans une autre page
    Par sonja dans le forum Symfony
    Réponses: 2
    Dernier message: 11/03/2009, 12h17
  3. récuperer variable dans une autre page
    Par brigade dans le forum Langage
    Réponses: 4
    Dernier message: 02/12/2008, 21h53
  4. [Conception] récupération d'une variable php dans une autre page
    Par vali7 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/01/2006, 11h19
  5. [VB.NET]Récuperer des valeurs d'une autre page
    Par Dnx dans le forum ASP.NET
    Réponses: 8
    Dernier message: 12/05/2005, 16h19

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