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 :

Gridview - Masquer une colonne générée automatiquement


Sujet :

ASP.NET

  1. #1
    Membre averti Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Points : 363
    Points
    363
    Par défaut Gridview - Masquer une colonne générée automatiquement
    Bonjour tout le monde,

    cela fait un petit moment que je bûche sur ce problème.
    J'essaie en vain de masquer une colonne auto-générée d'un gridview.

    J'élabore une requête qui retourne n colonnes dont un identifiant.

    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
     
            Dim DTPERS As New DataTable
            DTPERS.Columns.Add(New DataColumn("idpers", GetType(Integer)))
            DTPERS.Columns.Add(New DataColumn("nomprenom", GetType(String)))
     
            'on met idpers en clef primaire
            Dim PrimaryKeyColumns(0) As DataColumn
            PrimaryKeyColumns(0) = DTPERS.Columns(0)
            DTPERS.PrimaryKey = PrimaryKeyColumns
     
    ...
     
            Dim dv As DataView = New DataView(DTPERS)
            dv.Sort = "nomprenom asc"
     
            GridView1.DataSource = dv
            GridView1.DataBind()
            GridView1.Columns(0).Visible = False
    Malheureusement ça ne fonctionne pas. Cele me crée une erreur d'index. On dirait que le gridview ne sotcke pas les colonnes autogénérées dans la collection column.

    Du coup j'ai enlevé cette ligne et rendu invisible le champ idpers via le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
            'corrige le wrapping impossible à gérer via les propriétés du gridview
     
           e.Row.Cells(0).Style.Add("visibility", "hidden")
     
    End Sub
    Je ne trouve pas cette solution satisfaisante. Alors si vous avez des idées ?

    Merci en tout cas d'avoir lu ma tartine.

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur / DBA
    Inscrit en
    Septembre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur / DBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 133
    Points : 152
    Points
    152
    Par défaut
    Générer tes colonnes manuellement dans le code comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     GridView.AutoGenerateColumns = False
     
     Dim oColonne As BoundField = New BoundField
    oColonne .HeaderText = "le nom de ta colonne"
    oColonne .DataField = "le champ de ta base"
    GridViewVisu.Columns.Add(oColonne)
    Ensuite rien de plus simple pour la cacher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GridView.Colums(Index de la colonne type entier).visible = False
    Par contre pour pouvoir en récupérer la valeur c'est un peu moins drôle il faut affecter des datakeys

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     GridView.DataKeyNames = New String() {"le nom du DataField que tu as mis donc du champ"}
    et pour recuperer tu declare une variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim vKey as DataKey = GridView.DataKeys(e.NewSelectedIndex)
    Dans le cas ou tu as utilisé un petit bouton pour sélectionner ou autre bref c'est adaptable mais apparemment il existe aussi une solution du coté des TemplateField donc à voir.
    Digital D.N.A

  3. #3
    Membre averti Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Points : 363
    Points
    363
    Par défaut

    Merci digitaldna, grande classe, j'ai plus qu'à faire du copié-collé et le tour est joué.

    Je teste dans la matinée et te tiens au courant.

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur / DBA
    Inscrit en
    Septembre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur / DBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 133
    Points : 152
    Points
    152
    Par défaut
    Ok peut être que tu aura un problème pour la pagination au quel cas il te faudra rappeler la requête que tu stocke dans un objet ou dans un hiddenfield.
    Digital D.N.A

  5. #5
    Membre averti Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Points : 363
    Points
    363
    Par défaut
    Merci encore, c'est nickel et pas de soucis pour la pagination car j'affiche un bête résultat.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/07/2006, 10h18
  2. Masquer une colonne d'une feuille de données
    Par seljack dans le forum Access
    Réponses: 4
    Dernier message: 12/05/2006, 10h40
  3. [Jasper Report] Masquer une colonne
    Par BiM dans le forum Jasper
    Réponses: 4
    Dernier message: 28/03/2006, 15h04
  4. [JTable] Masquer une colonne
    Par IvanPopov dans le forum Composants
    Réponses: 2
    Dernier message: 26/07/2005, 17h12

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