C # DataGridView Cochez si vide
J'ai un datagridview qui se remplit avec les données renvoyées par une requête linq.
Si la requête ne renvoie aucun résultat, je veux afficher une messagebox.
Est-il un moyen de vérifier si le datagridview est vide?
Ce qui concerne
source d'informationauteur Goober
Vous devez vous connecter pour publier un commentaire.
Vous pouvez savoir si il est vide en vérifiant le nombre de lignes dans le DataGridView. Si
myDataGridView.Rows.Count == 0
alors votre DataGridView est vide.La
DGV.Rows.Count
méthode de vérification si DGV est vide ne fonctionne pas si l'optionAllowUserToAddRows
est définie sur true.Vous devez désactiver
AllowUserToAddRows = false
ensuite, vérifiez le vide comme ceci:Basé sur le Linq résultats, vous pouvez masquer le datagridview et de montrer quelques autres (comme un Littéral ou quelque chose) qui affiche le message. Si vous voulez une sorte de messagebox pop-up, vous aurez besoin de jeter un peu de JavaScript.
Beaucoup de réponses ici une référence à
Rows.Count
. Normalement, cela ne pose pas de problème et qu'il serait, dans la plupart des cas un excès de faire ce que je m'apprête à proposer.Mais pour les raisons évoquées dans ce document il peut ne pas être une bonne idée d'appeler
Rows.Count
si leDataGridView
a souvent beaucoup de données (>~ 5000
cellules dans le profilage de la mémoire que j'ai fait pour valider le fait que l'article a tout à l'arrière).Dans de tels cas, vous pouvez utiliser
Si vous n'êtes pas confronté à l'évolution rapide de données ou d'un énorme quantité de données (ou, pire, l'énorme quantité de l'évolution rapide de données) puis il suffit d'utiliser les Lignes.Comte-on ne fait pas de mal que bien.
//ce qui donne des lignes count=1
//donc finalement je modifieded code comme ci-dessous et cela fonctionne pour moi
Vous pouvez vérifier les Lignes.Propriété Count de la datagridview.
Bien que vous pouvez également regarder dans le EmptyDataText propriété de la DataGridView. Il pourrait vous faire économiser montrant un messagebox.
Cela devrait le faire: