Wie man sichtbare Zeilen zählen von DataGridView nach BindingSource.Filter?
Ich habe eine Tabelle mit sagen 1640 Elemente. Ich
bindingSource.Filter = "some filter query string";
und die meisten der Zeilen verschwinden, so dass, sagen wir, 400 Zeilen. Ich möchte in der Lage sein zu sagen, der Benutzer "Zeigt 400 1640 Elemente", wie Sie klicken Sie auf einige Textfelder, die änderung der filter-string, und damit die Zeilen sichtbar sind, die in das dataGridView-Objekt (ähnlich wie iTunes, aber für medizinische Daten nicht auf genres/Interpreten/Alben filtern songs).
Versuchte ich bindingSource.Graf und es wird immer 1640 egal, was die Filter-Zeichenfolge festgelegt ist (auch wenn viele weniger Zeilen angezeigt werden, wie gewünscht). Ich habe versucht Schleife über alle Zeilen im dataGridView.Zeilen und zählen nur die Zeilen Sichtbar sind, aber immer noch Summen, um 1640.
Wo bekomme ich diese Informationen?
Hinweis, dass ich mich nicht mit SQL, sondern bindingSource.DataSource eine DataSource aus einem DataView gewickelt eine DataTable (aus einem dataSet Lesen von XML).
- Ich hatte einen bug wo dieser code war nicht immer genannt, außer einmal am Anfang! Oops! Es gibt mindestens zwei Möglichkeiten zu finden, die zählen. Siehe meine Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie über das hinzufügen der gefilterten Elemente in einer separaten Datentabelle und dabei einen Zähler auf, der für die gefilterten Elemente.
Versuchen Sie dies:
datagridviewname.Rows.GetRowCount(DataGridViewElementStates.Visible);
Jared,
Ich kürzlich zu tun hatte, diese Sache sehr. Was für mich gearbeitet wurde mit dem DataGridView.Zeilen.Count-Eigenschaft, nachdem ich den filter angewendet haben.
Sind Sie Einstellung Ihrer Datenquelle, um die DataSource-Eigenschaft der BindingSource oder DataGridView? Es sollte die BindingSource.
HTH
-Jay
Schraubte ich etwas anderes auf. Jay hat Recht:
Werke, wie:
müssen Sie nur verwenden, Count-Eigenschaft der bindingSource...