Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Colonnes en trop dans DataGridView

6 réponses
Avatar
alain_nicolas
Bonjours,
Dans un DataGridView j'ai défini 3 colonnes A, B, C et un bouton Détail
Dans mon datasource (une collection d'objets) il y a les colonnes A, B, C,
D, E
Problème :
Toutes les colonnes du datasource s'affichent dans le DataGrid et en plus le
bouton Détail n'est plus en dernière colonne mais au milieu.
Question : comment faire pour que le DataGridView n'affiche que les colonnes
définies à la conception (A,B,C et le bouton en dernier).
Merci d'avance,
Alain

6 réponses

Avatar
Jérémy Jeanson
Bonjour Alain,

Pour déterminer manuellement les colonnes d'un DataGridView il n'y a
rien de sorcier il faut juste suivre 2 petite étapges :

1) dire au DataGridView qu'il ne génère pas automatiquement ses
coloonnes : AutoGenerateColumns="False"

2) saisir le colonnes dans la collesction Columns

Voici un exmeple de code pour ASP, en Winform c'est à peut près la même
chose mais via le designer de propriétés.

<asp:DataGridView ID="GridView1" runat="server"
AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="A" HeaderText="A" />
<asp:BoundField DataField="B" HeaderText="B" />
<asp:BoundField DataField="C" HeaderText="C" />
<asp:ButtonField Text="Détail" CommandName="NomdeTaCommande" />
</Columns>
</asp:DataGridView >


--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
alain_nicolas
Bonjour,
Désolé, j'ai oublié de préciser qu'il s'agisssait de WinForms.
Alain

"Jérémy Jeanson" a écrit :

Bonjour Alain,

Pour déterminer manuellement les colonnes d'un DataGridView il n'y a
rien de sorcier il faut juste suivre 2 petite étapges :

1) dire au DataGridView qu'il ne génère pas automatiquement ses
coloonnes : AutoGenerateColumns="False"

2) saisir le colonnes dans la collesction Columns

Voici un exmeple de code pour ASP, en Winform c'est à peut près la même
chose mais via le designer de propriétés.

<asp:DataGridView ID="GridView1" runat="server"
AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="A" HeaderText="A" />
<asp:BoundField DataField="B" HeaderText="B" />
<asp:BoundField DataField="C" HeaderText="C" />
<asp:ButtonField Text="Détail" CommandName="NomdeTaCommande" />
</Columns>
</asp:DataGridView >


--
Jérémy JEANSON
MCP
http://www.jjeanson.fr



Avatar
Jean-Luc M.
Avec un attribut [Browsable(False)] pour les propriétés à ne pas
afficher

--
Jean-Luc M.
Avatar
Jérémy Jeanson
Bonjour Jean-Luc,

??? Pourquoi parles tu de [Browsable]??? il s'agit d'un attribut que
l'on ajoute à une classe (faite maison) pour dire si oui ou non on
souhaite voir une propriété apparaitre dans de designer de Visual Studio...
Tu ne nous ferais pas un gros hors sujet là?
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
Jean-Luc M.
Jérémy Jeanson avait énoncé :
Bonjour Jean-Luc,

??? Pourquoi parles tu de [Browsable]??? il s'agit d'un attribut que l'on
ajoute à une classe (faite maison) pour dire si oui ou non on souhaite voir
une propriété apparaitre dans de designer de Visual Studio...
Tu ne nous ferais pas un gros hors sujet là?



ça marche aussi pour l'affichage dans les grid.

public partial class Form1 : Form
{
Personnes personnes = new Personnes()
{
new Personne(){Nom = "Dumas", Prenom = "Alexandre"}
};

public Form1()
{
InitializeComponent();
dataGridView1.DataSource = personnes;
}
}

class Personne
{
public string Nom { get; set; }
[Browsable(false)]
public string Prenom { get; set; }
}

class Personnes : List<Personne> { };

N'affichera que la colonen Nom

--
Jean-Luc M.
Avatar
Jérémy Jeanson
Bonjour Jean-Luc,

Merci pour l'astuce,
Je trouve que cette information très intéressante ;)
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr