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 :

comment définir la taille d'un gridview dynamiquement


Sujet :

ASP.NET

  1. #1
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut comment définir la taille d'un gridview dynamiquement
    Bonjour,

    j'ai un DataTable qui contient des données...

    je place ce DataTable en Datasource de mon gridview, puis j'affiche ce dernier avec un DataBind...

    rien de plus simple, mais vu que je vais utiliser ce GridView pour plusieurs types de données, j'aimerais ne pas définir les largeurs de colonnes à l'avance en Design , mais les définir dans le code suivant les cas...

    je fais donc ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    this.GridView_results.DataSource = montableau;
     
    this.GridView_results.Columns[0].ItemStyle.Width = 50;
    this.GridView_results.Columns[1].ItemStyle.Width = 50;
     
    this.GridView_results.DataBind();
    mais il refuse mes définitions de largeurs de colonnes me disant que l'index est hors limite...

    Pourtant, mon tableau comporte bien 2 colonnes, donc je supposais qu'en le placant en datasource de mon gridview, mes assignations par index de colonnes allaient passer...

    (Même si je place les 2 lignes d'associations de largeur après le .DataBind, cela me donne la même erreur...)

    Comment dois je faire?

    Merci

  2. #2
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    S'il te donne un index hors limite, c'est qu'au moment où tu fais ta modif, la colonne n'a pas encore été créée dans ton GridView.

    Laisse moi deviner.. tu utilises AutoGenerateColumns = true ?

  3. #3
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    Citation Envoyé par Mose
    S'il te donne un index hors limite, c'est qu'au moment où tu fais ta modif, la colonne n'a pas encore été créée dans ton GridView.

    Laisse moi deviner.. tu utilises AutoGenerateColumns = true ?

    non...

    l'autogeneratecolumn est à false...

    donc je ne comprends pas comment il considère que mes colonnes ne sont pas créées alors que je lui associe la ligne avant mon datasource comportant 2colonnes

  4. #4
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Solution simple et rapide : déplace ton code de changement de taille dans le pre-render de ta page.

  5. #5
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    Citation Envoyé par Mose
    Solution simple et rapide : déplace ton code de changement de taille dans le pre-render de ta page.

    toujours la même erreur

    les gridview et datagrid ne veulent pas de moi ces temps-ci

  6. #6
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Ah ouais ?
    T'es sur que t'as bien des colonnes ?
    Ton erreur c'est toujours 'index out of range" ?

    Sinon tu peux aussi passer la déclaration de tes colonnes dans le code-behind.
    Comme ça t'es sûr que les colonnes seront créées avant ton opération.

  7. #7
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Points : 1 119
    Points
    1 119
    Par défaut
    Citation Envoyé par Mose
    Ah ouais ?
    T'es sur que t'as bien des colonnes ?
    Ton erreur c'est toujours 'index out of range" ?

    Sinon tu peux aussi passer la déclaration de tes colonnes dans le code-behind.
    Comme ça t'es sûr que les colonnes seront créées avant ton opération.

    beh quand je fais un .count de mes colonnes il me dit 0.

    mais à l'affichage j'ai bel et bien mes colonnes créées.

  8. #8
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Citation Envoyé par cortex024
    beh quand je fais un .count de mes colonnes il me dit 0.

    mais à l'affichage j'ai bel et bien mes colonnes créées.
    Bein ça dépend à quel moment tu te renseignes.

    Un doc très intéressant pour comprendre le cycle de vie d'une page ASP.Net (en anglais, comme toutes les docs intéressantes) :
    http://msdn2.microsoft.com/en-us/library/ms178472.aspx

    Un article de Code Project qui détaille un peu tout ça :
    http://www.codeproject.com/useritems/lifecycle.asp

    Sinon t'as essayé de créer tes colonnes en code-behind ?

  9. #9
    Membre du Club Avatar de medtun.net
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 57
    Points : 60
    Points
    60
    Par défaut
    J'ai rencontré ce même problème lorsque j'ai définie dynamiquement la propriété dataSource de mon gridview... mais enfin je l'ai résolu.
    J'ai pu toucher les propriétés des cellules qui constituent chaque ligne de mon gridview lors de l'événement "RowCreated" grâce à l'objet "GridViewRowEventArgs" passé à la méthode de gestion d'événements.
    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Cells[0].Width = 100;
                e.Row.Cells[1].Width = 200;
                e.Row.Cells[3].Width = 300;
                ...
            }
        }

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/09/2010, 11h22
  2. Comment rendre la taille d'un userform dynamique
    Par bmeda72 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/10/2008, 16h03
  3. Comment définir une taille de police ?
    Par gloglo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 27/01/2007, 03h49
  4. Comment définir la taille de mon soustitre?
    Par christi dans le forum Mise en page CSS
    Réponses: 11
    Dernier message: 24/01/2007, 11h14
  5. Comment récupérer la taille d'un tableau dynamique ?
    Par Tchaill39 dans le forum Langage
    Réponses: 4
    Dernier message: 08/12/2005, 14h21

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