J'ai un ensemble de données avec environ 15 colonnes et j'ai également une GridView ASP.NET. Je me demandais si quelqu'un savait comment je peux remplir la grille avec le jeu de données, mais je veux juste que quelques-unes des colonnes de l'ensemble de données.
Pour le moment je fais juste P>
GridView1.DataSource = ds; GridView1.DataBind();
5 Réponses :
La grille de vue par défaut générera automatiquement toutes les colonnes en fonction des données liées. P>
SET GRIDVIEW.AUTOGENERATECOLUMNS = FALSE CODE> puis définissez les colonnes que vous souhaitez via la propriété
gridview.Columns p>
Définissez les grilles autogénéréesColumns sur False et définissez les colonnes que vous souhaitez utiliser dans le concepteur GridView ou dans le code. Mais vous devez définir la propriété Datafield sur la colonne de la même manière que le nom de p>
Vous souhaitez donc créer des colonnes au moment de l'exécution? Essayez ceci:
http://www.codeproject.com/kb/aspnet/dynamic_columns_in_grid .aspx p>
Alternativement, vous pouvez configurer votre gridview à l'avance à l'avance dans l'ASPX: p> et assurez-vous de définir AutogenerateColumns à False. p> p>
Deux façons de le faire, en fonction de ce que vous pouvez changer et de ce qui doit rester comme c'est le cas: p>
1) Si vous avez le contrôle de la requête / Proc qui génère l'ensemble de données et peut le faire sans affecter négativement d'autres grilles / pages, modifiez la requête afin qu'elle sélectionne uniquement les colonnes que vous utilisez. Vous pouvez toujours utiliser des colonnes non sélectionnées dans la jointure et où, et vous obtenez le bonus supplémentaire de ne pas avoir à ajouter toutes les colonnes à l'ordre. P>
2) Si vous n'avez que le contrôle de la grille et le codeBeHind qui l'utilise pour la générer, vous pouvez définir comme paramètre de datagrid, les autogéneratécolumns = Faux, puis nichez dans votre DataGrid, les champs limites dont vous avez besoin pour montrer. Cela vous permet également de formater le pouvoir de formater, de créer des noms de colonnes, etc. p>
Si vous pouvez faire ces deux éléments, votre grille devrait également charger plus rapidement. P>
SqlCommand comm = new SqlCommand("Select required fields from YourTable, conn); conn.Open(); SqlDataReader rdr = comm.ExecuteReader(); GridView1.DataSource = rdr; GridView1.DataBind(); rdr.Close(); This will print only required fields.
Ensuite, vous pouvez sélectionner les quelques colonnes dans le jeu de données.