2011-01-14 5 views
0

Ich habe das Ergebnis einer Linq-Abfrage, die an eine Gridview gebunden ist. OnRowDataBound Ich erstelle einen Event-Handler, der die Spalten durchläuft und Änderungen an den Daten vornimmt.Schleife durch gridview oder seine Datenquelle

Ist es besser, die Spalten der Gridview oder durch die Datenquelle zu durchlaufen?

Antwort

1

Ich würde sagen, es liegt an Ihnen. Aber hier einige Details:

Wenn Sie irgendwelche Bedingungen (Filter), die wahrscheinlich die Menge der Daten reduziert anwenden möchten, in diesem Fall besser tun Sie es vor Databind(). Aber wenn Ihre Bedingungen/Logik Datenmenge gleich bleiben, ist es nicht entscheidend, wo Sie es loopen. Es wird immer noch die gleiche Schleife sein, die gleiche Leistung. Wenn Sie die Leistung überprüfen möchten, verwenden Sie die Klasse Stopwatch von System.Diagnostics.

2

OnRowDataBound Sie erhalten die Daten, während sie gebunden werden. Sie müssen sich also nur auf die betreffende Zeile und nicht auf das gesamte Raster konzentrieren.

Sie sollten zu diesem Zeitpunkt mit dem GridView-Steuerelement arbeiten, nicht die Datenquelle, aber die Datenquelle der Zeile ist in der zweiten übergebenen Variable verfügbar, so dass Sie dort zugreifen können (ich mine e), wenn Sie die benötigen tatsächliche Quellwerte statt, was gebunden wurde. Aber zu dem Zeitpunkt, zu dem Ihnen die Reihe in diesem Fall präsentiert wird, sind bereits die Daten vorhanden.

Es wird jedoch fast immer schneller sein, alle Datenmanipulationen in einer engen Schleife durchzuführen, und der Jitter fügt alle Mikropunkte hinzu, die das CLR-Team bereitstellen kann, anstatt es als spärliche Schleife zu versuchen.

Verwandte Themen