Cacher une colonne d'un GridView
Bonjour tout le monde.
Je crois que ce que je veux faire n'est aps possible, mais je voudrais m'en assurer auprés de vous.
J'ai un GridView monté par le CodeBehind. Je l'ai laisssé en mode automatique pour le montage des colonnes.
Je voudrais "cacher" la première colonne mais il ne veut pas. J'ai mis ça dans le code :
Code:
.Columns(0).Visible = False
et il me dit :
Citation:
L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.
Nom du paramètre : index
Alors je comprends pas bien. Je fais ça aprés le DataBind pour êre sûr qu'il soit rempli au moment où je lui dit de cacher la colonne.
Evidement je pourrais mettre le mode automatique à False et fabriquer mes colonne à la main (et en plus je sais le faire !) mais je voulais m'épargner du code sur ce coup là.
Avez vous une idée ?
Cacher une colonne dans une GridView via CSS
Indépendamment des problèmes d'indice, il me semble que le fait de mettre Visible à False implique que les données de la colonne ne seront pas envoyées au navigateur (le tableau HTML ne contiendra pas cette colonne).
Si le but est de cacher la colonne, mais avec les données quand même dispo sur le navigateur (parce qu'on a besoin d'y accéder via Javascript, par exemple), il faut passer par les CSS.
Voici un exemple de ce que j'utilise :
Code:
1 2 3 4 5 6 7
|
Sub MaGridViewAMoiPerso_RowCreated(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow _
or e.Row.RowType = DataControlRowType.Header Then
e.Row.Cells(6).CssClass = "hidden"
Next
End Sub |
Avec quelque part, le style suivant :
Code:
1 2 3 4 5
|
.hidden
{
display:none;
} |