ASP.net lie par programme le jeu de données à gridview

J’ai un dataset avec environ 15 colonnes et j’ai aussi un gridview ASP.net. Je me demandais si quelqu’un savait comment je pourrais remplir GridView avec l’dataset, mais le problème est que je veux juste quelques-unes des colonnes de l’dataset.

pour le moment je fais juste

GridView1.DataSource = ds; GridView1.DataBind(); 

mais cela lie évidemment toutes les colonnes de l’dataset à la vue en grid.

Vous souhaitez donc créer des colonnes lors de l’exécution? Essaye ça:

http://www.codeproject.com/KB/aspnet/dynamic_Columns_in_Grid.aspx

Sinon, vous pouvez configurer votre gridview à l’avance dans l’aspx:

      

Et assurez-vous de définir AutoGenerateColumns sur false.

Par défaut, GridView générera automatiquement toutes les colonnes en fonction des données liées.

Définissez GridView.AutoGenerateColumns = false , puis définissez les colonnes souhaitées via la propriété GridView.Columns .

Je peux voir cela de deux manières, en fonction de ce que vous pouvez changer et de ce qui doit restr tel quel:

1) Si vous avez le contrôle de la requête / proc qui génère le jeu de données et que vous pouvez le faire sans nuire aux autres grids / pages, modifiez la requête de sorte qu’elle ne sélectionne que les colonnes que vous utilisez. Vous pouvez toujours utiliser des colonnes non sélectionnées dans JOIN et WHERE, et vous obtenez le bonus supplémentaire de ne pas avoir à append chaque colonne à ORDER BY.

2) Si vous avez uniquement le contrôle de la grid et du code ci-dessous utilisé pour la générer, vous pouvez définir en tant que paramètre DataGrid, AutoGenerateColumns = false, puis imbriquer dans votre DataGrid, les BoundField que vous devez afficher. Cela vous permet également de formater, de nommer des colonnes, etc.

Si vous pouvez faire ces deux choses, votre réseau devrait également se charger plus rapidement.

Définissez les grids AutoGeneratedColumns 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 column avec le même nom que le nom de

 SqlCommand comm = new SqlCommand("Select required fields from YourTable, conn); conn.Open(); SqlDataReader rdr = comm.ExecuteReader(); GridView1.DataSource = rdr; GridView1.DataBind(); rdr.Close(); 

Cela n’imprimera que les champs obligatoires.