Hallo in die Runde,
zuerst einmal möchte ich mich ganz herzlich bei diesem Forum und all seinen Mitgliedern für die vielen Fragen und Antworten bedanken :-). Diese Plattform hat mir schon oft geholfen um Probleme zu lösen.
Finde ich echt super! Vielleicht klappt es dieses mal auch wieder
Ich habe folgendes Problem:
Ich lade (select Abfrage) aus einer DB über eine ODBC Schnittstelle Daten.
Sobald die DB einen Rückgabe-Wert zurückgibt, soll die Rückgabe in eine "verschachtelte" Liste (List of....mehrere Datentypen...) geladen werden.
Weil das Resultat etwas größer ist, ( kann mal über 40000 Zeilen sein) kann es etwas dauern bis die Antwort vom Server vollständig erfolgt ist.
Deswegen habe ich mir überlegt, den Vorgang des Abfragens und das schreiben in die Resultat-Liste in einen eigenen Thread zu packen. Um zu "wissen" was der Thread gerade macht, habe ich ein paar Status-Marker gesetzt.
Sobald der Status-Marker "Server sendet Antwort" erreicht ist, heißt es für mich, dass die ersten Resultate in der Resultate_Liste geschrieben werden.
Ab dem Zeitpunkt an dem die ersten Daten empfangen werden kann ich auf die Resultate_Liste zugreifen und die ersten 500 Werte in eine Datagridview schreiben.
Des Weiteren habe ich eine kleine Funktion geschrieben die in der Lage ist die Resultate_Liste in "Seiten" mit 500 Einträgen zu unterteilen. Dadurch wir die Datagridview nicht mit Daten überladen und das Laden der Daten geht auch deutlich schneller.
Bis hierhin ist alles gut und es funktioniert alles. Allerdings würde ich gerne von den Seiten weggehen und ein Infinite-Scrolling integrieren?
Das würde ich gerne so gestalten, dass die ersten 500 Werte geladen werden und den Benutzer angezeigt werden. Sobald der Benutzer "runterscrollt" sollen die nächsten 500 Werte geladen werden und so weiter.
Mein Problem ist, dass ich nicht weis wo ich am besten ansetzen kann? Mit dem MouseWheel Event will ich eigentlich nichts machen, weil ich in diesem Event nicht genau sagen kann ob der User gerade ganz unten in der Liste ist (dort würde es Sinn machen Daten nachzuladen) oder ob der User das "erste mal scrollt". Am liebsten würde ich einfach den Scrollbalken der Datagridview abfragen. Leider finde ich keine Möglichkeit den Scrollbalken abzufragen.
Hat jemand eine Idee?
Aus VB-Paradise Guide verschoben ~ EaranMaleasi
zuerst einmal möchte ich mich ganz herzlich bei diesem Forum und all seinen Mitgliedern für die vielen Fragen und Antworten bedanken :-). Diese Plattform hat mir schon oft geholfen um Probleme zu lösen.
Finde ich echt super! Vielleicht klappt es dieses mal auch wieder
Ich habe folgendes Problem:
Ich lade (select Abfrage) aus einer DB über eine ODBC Schnittstelle Daten.
Sobald die DB einen Rückgabe-Wert zurückgibt, soll die Rückgabe in eine "verschachtelte" Liste (List of....mehrere Datentypen...) geladen werden.
Weil das Resultat etwas größer ist, ( kann mal über 40000 Zeilen sein) kann es etwas dauern bis die Antwort vom Server vollständig erfolgt ist.
Deswegen habe ich mir überlegt, den Vorgang des Abfragens und das schreiben in die Resultat-Liste in einen eigenen Thread zu packen. Um zu "wissen" was der Thread gerade macht, habe ich ein paar Status-Marker gesetzt.
Sobald der Status-Marker "Server sendet Antwort" erreicht ist, heißt es für mich, dass die ersten Resultate in der Resultate_Liste geschrieben werden.
Ab dem Zeitpunkt an dem die ersten Daten empfangen werden kann ich auf die Resultate_Liste zugreifen und die ersten 500 Werte in eine Datagridview schreiben.
Des Weiteren habe ich eine kleine Funktion geschrieben die in der Lage ist die Resultate_Liste in "Seiten" mit 500 Einträgen zu unterteilen. Dadurch wir die Datagridview nicht mit Daten überladen und das Laden der Daten geht auch deutlich schneller.
Bis hierhin ist alles gut und es funktioniert alles. Allerdings würde ich gerne von den Seiten weggehen und ein Infinite-Scrolling integrieren?
Das würde ich gerne so gestalten, dass die ersten 500 Werte geladen werden und den Benutzer angezeigt werden. Sobald der Benutzer "runterscrollt" sollen die nächsten 500 Werte geladen werden und so weiter.
Mein Problem ist, dass ich nicht weis wo ich am besten ansetzen kann? Mit dem MouseWheel Event will ich eigentlich nichts machen, weil ich in diesem Event nicht genau sagen kann ob der User gerade ganz unten in der Liste ist (dort würde es Sinn machen Daten nachzuladen) oder ob der User das "erste mal scrollt". Am liebsten würde ich einfach den Scrollbalken der Datagridview abfragen. Leider finde ich keine Möglichkeit den Scrollbalken abzufragen.
Hat jemand eine Idee?
Aus VB-Paradise Guide verschoben ~ EaranMaleasi
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „EaranMaleasi“ ()