2008-11-06 8 views
1

Des suggestions sur la façon d'améliorer DataGridViewComboBoxColumn Performace avec de grands ensembles d'éléments?Colonne ComboBox DataGridView .NET 2.0 - lent à afficher les éléments

J'ai un DataGridView avec plusieurs colonnes de type DataGridViewComboBoxColumn. Je lie ces colonnes de liste déroulante à une collection assez importante (10k + éléments). En conséquence, il est très lent à afficher les éléments (lorsque je clique sur le bouton flèche vers le bas sur une cellule, il faut environ 10 secondes pour afficher les éléments).

J'ai testé la même collection d'éléments avec un contrôle ComboBox standard, et cela fonctionne très vite.

Des idées?

Merci.

Répondre

-1

Les données sont-vous liant 10k éléments aux zones de liste déroulante ou la grille de données?

De toute façon, vous devriez penser à la facilité d'utilisation de votre conception.

Si c'est à la grille de données, puis utiliser la pagination et couper la taille de la source de données liée à une taille plus raisonnable.

Si c'est à la liste déroulante alors votre solution ne peut pas être utilisable. Vous feriez mieux de donner à vos utilisateurs une boîte de saisie semi-automatique comme celle de la boîte à outils ajax (http://www.asp.net/AJAX/AjaxControlToolkit/Samples/AutoComplete/AutoComplete.aspx) ou une fenêtre contextuelle qui leur permet de faire des recherches sur vos objets 10k.

2

Une solution beaucoup mieux est de remplir un tableau de chaînes avec les valeurs de la base de données et définir la source de données de colonne à null, puis définir la propriété Items de la colonne au tableau de valeurs que vous avez peuplé. De cette façon, il ne rafraîchit pas la base de données chaque fois qu'il remplit la liste déroulante. J'espère que cela t'aides.