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

C# Discussion :

Récupérer contenu de GridView


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 230
    Par défaut Récupérer contenu de GridView
    Bonjour,

    Ayant un Gridview j'ai voulu exporter son contenu dans un fichier Excel c'est pour ça j'ai essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataTable dt = (DataTable)gvHistoPlace.DataSource
    mais ca me retourne Null tandis que le gridview contient des valeurs, en plus j'ai testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach (DataColumn dc in gvHistoPlace.Columns)
    mais aussi il me retourne un nombre de colonne=0. Est ce que vous avez une idée comment le faire

    Merci.

  2. #2
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    Bonjour,

    Bon, commençons par le début! Tu travailles très certainement en WinForms?
    Comment alimentes-tu en données ton DataGridView?

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 230
    Par défaut
    @sisqo60 oui je travaille en winforms

    Pour le GridView en fait j'ai un serviceWeb qui me retourne une liste et moi je fait un traitement pour le transformer en Datatable puis j'affecte cette dernière comme source du GridView. Je ne cherche pas à refaire le meme traitement pour générer un fichier Excel(c'est à dire interroger le serviceWeb et transformer en Datatable), en cliquant sur un button et ayant le GridView affichant le résultat, qui aura la même source que mon GridView.

  4. #4
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    Bon, j'ai pas tout compris à ta réponse, mais bon...

    tu dis que cette ligne te renvoie null :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataTable dt = (DataTable)gvHistoPlace.DataSource
    est-ce que gvHistoPlace.DataSource est null? Si oui, revoies ton code! si non, quel est son type?
    c'est pas logique, que ça te renvoie null si tu lui affectes un valeur de type DataTable.

    Bon dév

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 230
    Par défaut
    Salut sisqo60 je te remercie pour ton suivi, oui c'est gvHistoPlace.DataSource qui renvoi null. En fait mon code est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                { 
                    DataTable dt = new DataTable();
                    dt = afficheGrid();
                    //Bind du gridview
                    gvHistoPlace.DataSource = dt;
                    gvHistoPlace.DataBind();
                }
           }
    le Grid ce rempli bien mais par la suite quand j'ai eu besoin du contenu du grid view et le transformer en un fichier Excel j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    protected void BExcel_Click(object sender, EventArgs e)
            {
                DataTable dt = (DataTable)gvHistoPlace.DataSource; //Le probleme que ca me rend Null
               ........
    J'espère que j'étais clair cette fois ci, si ce n'est pas le cas vous pouvez me le dire.

    Merci.

  6. #6
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    Citation Envoyé par Naceur84 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                { 
                    DataTable dt = new DataTable();
                    dt = afficheGrid();
                    //Bind du gridview
                    gvHistoPlace.DataSource = dt;
                    gvHistoPlace.DataBind();
                }
           }
    Dans un premier temps ça ne sert à rien d'instancier un datatable alors que tu en récupère une instance avec la méthode afficheGrid. Bref, c'est pas le soucis, c'est juste que j'aime pas voir de code qui ne sert à rien et qui ralentit les perfs pour rien (oui je chipote)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                { 
                    DataTable dt = afficheGrid();
                    //Bind du gridview
                    gvHistoPlace.DataSource = dt;
                    gvHistoPlace.DataBind();
                }
           }
    En mode debug, que vaut la variable dt, dans ta méthode Page_Load, au moment de l'affecter à la propriété DataSource de ton instance de DataGridView? elle n'est pas null?

    Dans le code suivant que vaut l'objet leDataSource (toujours en debug)?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    protected void BExcel_Click(object sender, EventArgs e)
            {
                //Que vaut cette variable?
                object leDataSource = gvHistoPlace.DataSource;
               ........
    Si elle vaut null, c'est que ton datasource n'a pas été affecté (car le méthode afficheGrid renvoie null, mais tu aurais dû le voir car il n'y aurais rien eu dans ton datagridview) dans le premier bout de code ou qu'il a été mis à null entre temps.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/06/2020, 12h44
  2. Réponses: 1
    Dernier message: 02/04/2013, 11h38
  3. récupérer contenu cellule gridview
    Par realkilla dans le forum ASP.NET
    Réponses: 4
    Dernier message: 10/12/2008, 11h01
  4. Récupérer contenu d'une page HTML
    Par ArHacKnIdE dans le forum Langage
    Réponses: 9
    Dernier message: 07/11/2006, 08h56
  5. [VBA-O]Récupérer contenu message
    Par Elstak dans le forum VBA Outlook
    Réponses: 14
    Dernier message: 17/08/2006, 09h34

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