telerik radgrid datasource null nach dem postback
Nach der Zuweisung RadGrid.DataSource
um eine Linq-Abfrage auf postback DataSource
null ist. Ist es möglich zu greifen, die Daten von der RadGrid, füllen das raster, nach dem alle Filter und Sortierung angewendet wurde?
Bearbeiten
Nur die verfügbaren Methoden zu greifen, die Daten sind als intern gekennzeichnet. Ich denke, ich werde einfach zu geben bis jetzt. Wenn ich eine Lösung finden, später poste ich meine Antwort hier.
InformationsquelleAutor Buildstarted | 2010-07-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist nicht eine telerik Sache. Für alle Steuerelemente, die DataSource-Eigenschaft wird immer null sein, es sei denn, Sie explizit neu zuweisen und neu zu binden, es auf jedem postback.
Könnten Sie verwenden Session oder Cache, oder sogar Keuchen ViewState halten Sie die DataSource-um, aber ich würde abraten. Im Idealfall jede Aktion, die Sie ausführen auf raster wie Sortierung und paging dürfte in die anderen Reise um die Datenbank für diese Informationen.
EDIT:
Der Grund für die Vermeidung der Speicherung von diese Art von Informationen in Session oder Cache ist, denn es ist groß und pro Benutzer. Wenn man unbegrenzt Speicher auf Ihrem server, dann mit allen Mitteln speichern von Daten-sets, die alle über den Ort pro Benutzer in session-und cache, aber die meisten der Zeit, die Sie wollen, um Ihre pro-Benutzer-Speicher-footprint klein.
Speicherung dieser Informationen im ViewState ist weitgehend verschwendet, weil Sie immer nur eine kleine Teilmenge der Zeilen an, die den Kunden, sondern geben Ihnen eine RIESIGE download über Ihre aufgeblähten ViewState.
In der end-Pflege muss getroffen werden, um handle paging, Sortieren und filtern auf die Daten zugreifen Ebene, so dass Sie nur die Zeilen abzurufen, die Sie wollen, um tatsächlich zeigen Sie dem Nutzer.
Im Idealfall werden nur die sichtbaren Zeilen sind die, die Sie abrufen aus der Datenbank. Alles andere ist verloren. Alle Daten, die im wesentlichen übersetzt nur die Werte benötigt, zum füllen der sichtbaren Zeilen auf dem raster. Also... man kann nicht wirklich abrufen stark typisierte Werte zurück, es sei denn, Sie sind mit so etwas wie SqlDataSource, aber auch, dass in der Regel bindet die Datenquelle auf jedem postback.
Über die website alles, was Sie sehen, sind die sichtbaren Zeilen und sonst nichts (so scheint es) enthalten ist, auf der Seite, aber telerik hat eine Art von caching-option verfügbar. So hoffte ich, bekommen Sie direkten Zugriff auf das - fand ich diese
this.RadGrid2.MasterTableView.Controls(0).Rows
enthält, was ich brauche, also werde ich den Kopf in diese Richtung, um zu sehen, was ich finde, dann werde ich wieder hierher kommen...Danke soweitEine kleine Klarstellung für die junior-Leser: Josh scheint zu implizieren, dass, wenn Sie große Daten, die nicht eindeutig pro Benutzer eine Session ist eine bessere Lösung, aber Session ist immer einmalig pro Benutzer (daher der name).
Ich bin mir nicht sicher, wie Sie Sie in der Lage sind, zu folgern, dass die Argumentation von dem, was ich schrieb. Ich habe nie eine Aussage über, wenn Sie sollte verwenden
Session
nur, dass Ihre pro-Benutzer-Speicher-footprint soll sehr klein sein.InformationsquelleAutor Josh
Telerik hat eine NeedDataSource event-handler-auf, Ihre Kontrollen. Legen Sie die datasource-es.
Es hängt davon ab, wie Sie den code Ihrer Seite. Im Beispiel oben.Schiff ist eine Eigenschaft fügt hinzu, dass der ViewState bei Einstellung und ruft aus der ViewState auf bekommen. Auf meinem Page_Load(!IsPostBack) ich werde die Immobilie mit Daten aus der db. Es ist entnommen aus viewstate auf dem postback so eine neue db-Aufruf ist nicht erforderlich.
Ich habe nicht ein problem der Einstellung der Datenquelle. Ich versuche zum abrufen der vorhandenen Daten nach dem postback. Da ich weiß, dass Telerik ist die Zwischenspeicherung meine Daten, die ich lieber nicht Zwischenspeichern oder senden Sie es an den viewstate an alle...
InformationsquelleAutor Ed B
Haben Sie zwei Möglichkeiten, die eine zum speichern der datasource-Objekt in die Sitzung. Oder Sie können jede DataSource-Steuerelement und binden es während der post zurück.
InformationsquelleAutor John Mao