Laden...

UserControl-Property wird bei Postback == null

Erstellt von dr_d00m vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.319 Views
dr_d00m Themenstarter:in
43 Beiträge seit 2008
vor 15 Jahren
UserControl-Property wird bei Postback == null

Hallo Leute,
ich habe ein UserControl in dem ich mehere Properties definiere. Diese werden auch beim ersten Laden der Seite richtig geladen. Sobald ich aber nun ein Postback durchführe (heißt in meinem Fall ein Grid wird neu geladen) Sind meine benötigten Properties wieder null. Allerdings muss ich die Werte der Properties weiter verarbeiten.

Gibt es also eine Möglichkeit den Stand der Properties irgendwie zu retten?

Danke schonmal für jede Art von Hilfe.

Gruß,

dr_d00m

5.941 Beiträge seit 2005
vor 15 Jahren

Hallo dr_d00m

Ja, indem du die Eigenschaften jeweils aus dem ViewState liest und auch darin speicherst.
Das klappt dann aber nur jeweils vom ersten bis zum letzten PostBack. Bei einem anderen Seitenübergang ist auch wieder alles weg.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

dr_d00m Themenstarter:in
43 Beiträge seit 2008
vor 15 Jahren

Hallo Peter und danke für die Antwort.
Ich hab mich grad ein wenig mit ViewState auseinandergesetzt und gelesen, dass diese Art der Datenspeicherung mehr für kleine Datenmengen gedacht ist. Bei handelt es sich allerdings in einem Fall um eine Liste mit Business Objects. Die kann dann leicht einen Umfang von 100-200 Elementen erreichen.
Ist ViewState auch dafür noch zu gebrauchen oder gibt es dafür eine bessere Möglichkeit der Speicherung?

Gruß

dr_d00m

B
200 Beiträge seit 2006
vor 15 Jahren

Hallo dr_d00m,

kommt den der PostBack von deinem Grid her?

dr_d00m Themenstarter:in
43 Beiträge seit 2008
vor 15 Jahren

Hallo Ben.
Also die ganze Geschichte sieht folgendermaßen aus:
Ich habe links ein TreeView Element und rechts das GridView.
Wähle ich auf dem TreeView ein ein neues Element aus wird das GridView mit neuen Daten gefüllt. Dazu setze ich die DataSource des GridView auf eine Liste mit Business Objects. Diese Liste möchte ich in einer Property speichern, um auf die eigentlichen Business Objects zugreifen zu können. Das GridView zeigt nämlich nur eine Teilmenge der properties der Business Objects an.

So ich hoffe das veranschaulicht den zusammenhang ein wenig.

Gruß

dr_d00m

5.941 Beiträge seit 2005
vor 15 Jahren

Hallo Ben

Nein, dafür ist der ViewState nicht gedacht.
Benutzte doch einfach Paging?

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

dr_d00m Themenstarter:in
43 Beiträge seit 2008
vor 15 Jahren

Nicht schlecht geschlussfolgert 😉
Es geht im Prinzip darum, dass ich mir einen eigenen Pager baue. Der soll nur ein wenig performanter sein, als der im GridView. Außerdem brauche ich das diese Properties, um eine dynamische Größenanpassung des GridViews machen zu können...

Gruß

dr_d00m

5.941 Beiträge seit 2005
vor 15 Jahren

Salute

Wenn du ein Paging des GridView möchtest, benutze am besten das eingebaut.
Deine Lösung ist sicher nicht performanter.

Wenn du ASP.NET 3.5 benutzten kannst, könntest du das ListView + DataPager nehmen.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

dr_d00m Themenstarter:in
43 Beiträge seit 2008
vor 15 Jahren

Servus. Also auf das Paging im GridView könnte ich mich einlassen. Auf ASP.NET 3.5 kann ich leider nicht zurückgreifen, da alles unter Mono laufen soll. Da gibt es bekanntlich nur ASP.NET 2.0.
Da ich die Properties aber auf jeden Fall brauche, möchte ich nochmal auf mein eigentliches Problem zurückkommen. Ich hab sie im Moment im Cache des Servers abgelegt.
Ist ok für meine Listen von 100 Objekten oder gibts da noch was besseres?

5.941 Beiträge seit 2005
vor 15 Jahren

Salute dr_d00m

Wenn es nicht benutzerspezifische Daten sind, würde ich den Application State nehmen.
Cache ist nicht nötig und schwieriger zum handeln.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

dr_d00m Themenstarter:in
43 Beiträge seit 2008
vor 15 Jahren

Hallo Peter,
Tja, leider handelt es sich schon benutzerspezifische Daten. Meine Cache-Variante funktioniert erstmal ganz gut und ich werd es wohl vorerst dabei belassen.

Auf jeden Fall mal Danke für die ausdauernde Hilfe 😉

Gruß,
dr_d00m