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 :

Largeur fixe pour une colonne de GridView


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 31
    Points : 23
    Points
    23
    Par défaut Largeur fixe pour une colonne de GridView
    Bonjour à tous,

    Je créé un GridView qui est alimenté par une datatable. Bien entendu, le GridView fait un peu ce qu'il veut. Au binding, automatiquement, il fait sa propre attribution d'espace pour les différentes colonnes.

    Ce que je n'arrive pas à faire, c'est de trouver un moyen pour fixer la largeur des colonnes en dur ! Que certaines soient fixes et d'autres dynamiques.
    (Quelque soit la taille des données à l'intérieur)

    Question bonus : Si je veux faire un saut de ligne dans une cellule, il suffit que je rajoute un caractère de retour charriot ?

    Merci d'avance pour votre aide,

    Cordialement,

  2. #2
    Nouveau membre du Club Avatar de Koyote
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 35
    Points : 38
    Points
    38
    Par défaut
    Salut,

    tu peux appliquer un css style aux colonnes de ta datagrid.

    Soit en mode html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <asp:GridView ID="GridView1" runat="server">
     <Columns>
       <asp:BoundField DataField="datafield" ItemStyle-Width="100px" HeaderText="text" />
      </Columns>
    </asp:GridView>
    Soit en code behind :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       GridView1.Columns[0].ItemStyle.Width = "100px";
    En éspérant avoir répondu à la question.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Points : 444
    Points
    444
    Par défaut
    Ou aussi utiliser une feuille de style...

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 31
    Points : 23
    Points
    23
    Par défaut Message d'erreur
    Bonjour,

    Merci pour ces infos, mais après avoir effectué le test (en code-behind), j'ai rencontré un soucis.
    Déjà le "100px" ne passe pas, il me sort un message impossible de convertir la string en Unit ! J'ai donc tapé la valeur numérique 100.

    Par contre, il m'a indiqué le message d'erreur suivant :
    System.ArgumentOutOfRangeException: L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.

    Je pense que cela viens du columns[0] ...
    Or, j'ai bien de nombreuses colonnes, mais créées en code-behind. M'y suis-je mal pris ?
    J'ai juste créé un datatable, j'ai assigné des nom de colonnes, j'ai ajouté des rows et ensuite je l'ai bindé sur mon gridview ...


    Citation Envoyé par Koyote Voir le message
    Salut,

    tu peux appliquer un css style aux colonnes de ta datagrid.

    Soit en mode html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <asp:GridView ID="GridView1" runat="server">
     <Columns>
       <asp:BoundField DataField="datafield" ItemStyle-Width="100px" HeaderText="text" />
      </Columns>
    </asp:GridView>
    Soit en code behind :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       GridView1.Columns[0].ItemStyle.Width = "100px";
    En éspérant avoir répondu à la question.

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 31
    Points : 23
    Points
    23
    Par défaut info complémentaire ...
    Bizarrement, lorsque je fais un
    gridview.columns.count.tostring(), cela me renvoit 0 !
    (Après avoir fait le bind)
    Etrange ?

  6. #6
    Nouveau membre du Club Avatar de Koyote
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 35
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par slokix Voir le message
    Bonjour,

    Merci pour ces infos, mais après avoir effectué le test (en code-behind), j'ai rencontré un soucis.
    Déjà le "100px" ne passe pas, il me sort un message impossible de convertir la string en Unit ! J'ai donc tapé la valeur numérique 100.
    Désolé j'ai fais une petite erreur effectivement. A l'affectation change le "100px" par Unit.Pixel(100).

    Cela devrait mieux compiler.

  7. #7
    Nouveau membre du Club Avatar de Koyote
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 35
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par slokix Voir le message
    Par contre, il m'a indiqué le message d'erreur suivant :
    System.ArgumentOutOfRangeException: L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.

    Je pense que cela viens du columns[0] ...
    Or, j'ai bien de nombreuses colonnes, mais créées en code-behind. M'y suis-je mal pris ?
    J'ai juste créé un datatable, j'ai assigné des nom de colonnes, j'ai ajouté des rows et ensuite je l'ai bindé sur mon gridview ...
    Faut voir comment tu as ajouter tes colonnes en code behind.

    Peux tu poster ton code?

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par Koyote Voir le message
    Faut voir comment tu as ajouter tes colonnes en code behind.

    Peux tu poster ton code?
    Merci pour la syntaxe du Unit.Pixel ... Il ne fait plus d'erreur de compilation !
    Par contre, j'ai toujours l'erreur "Hors limite" de mon columns[0] ...

    Concernant le code, c'est celui de mon autre post sur lequel tu m'aides aussi :-)

    Plus j'y pense et plus je me dis que cela viens de mes colonnes de gridview ! Jamais je ne les ai déclarées !
    En fait, je me contente de faire un bind de ma datatable qui contient des en-tete de colonnes, mais c'est tout. Je n'ai pas défini de colonnes spécifiques dans le gridview.

    C'est surement pour cela que, lorsque je lui demande de compter les colonnes, il me retourne Zéro ...

  9. #9
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    salut,

    on a eu le meme probleme sur un projet en cours,

    lorsqu'on fixe une largeur de colonne puis qu'on y place un chaine trop longue
    la colonne s'élargie automatiquement et ne revien à la ligne qu'au moment ou apparait un espace.

    et la seule solution trouvé est d'insérer des espaces dans la chaine pour la faire revenir à la ligne !

    Si d'autres solutions plus propres sont possible je suis preneur.

    Merci ;)

  10. #10
    Nouveau membre du Club Avatar de Koyote
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 35
    Points : 38
    Points
    38
    Par défaut
    Il faut impérativement déclarer les colonnes que tu souhaite voire apparaitre dans la collection.

    Si tu utilise l'option AutoGenerateColumns de la Grid, il est normal que tu n'est pas colonnes dans la collection.

    Essai de déclarer des colonnes dans l'HTML ou en code behind histoire de pouvoir les énumérer.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par beekeep Voir le message
    salut,

    on a eu le meme probleme sur un projet en cours,

    lorsqu'on fixe une largeur de colonne puis qu'on y place un chaine trop longue
    la colonne s'élargie automatiquement et ne revien à la ligne qu'au moment ou apparait un espace.

    et la seule solution trouvé est d'insérer des espaces dans la chaine pour la faire revenir à la ligne !

    Si d'autres solutions plus propres sont possible je suis preneur.

    Merci
    un override auto ne fonctionne pas ?

  12. #12
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 31
    Points : 23
    Points
    23
    Par défaut Transfert vers un autre post.
    Merci pour votre support,

    Ce problème a la même origine qu'un autre de mes soucis sur le forum !
    Tout vient de la création des colonnes dans mon gridview en code-behind. Du coup, je vais cloturer ce post et renvoyer vers l'autre post, toujours ouvert !

    Encore merci à tous :

    http://www.developpez.net/forums/sho...46#post2528646

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

Discussions similaires

  1. Définir une taille fixe pour une date
    Par Mystic eyes dans le forum SQL*Loader
    Réponses: 7
    Dernier message: 28/11/2008, 16h55
  2. Largeur fixe sur une page
    Par remooz dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 29/11/2006, 07h08
  3. [CSS] Div fixed pour une page.
    Par hazardous_material dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 31/07/2006, 13h32
  4. [CSS] largeur fixe pour les elements d'une liste
    Par arnolpourri dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 24/05/2006, 13h25
  5. Union de 2 tables pour une colonne
    Par charleshbo dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/04/2006, 17h23

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