Frage

Auf meiner Reise in die Tiefen von benutzerdefinierten ASP.NET-Steuerung Entwicklung ich meinen Kopf bin offensichtlich um das ASP.NET Postback Modell bekommen und wie sie sich auf Steuer Entwicklung.

Ich verstehe, dass die Kontrollen keine „Lebenszeit“ in ASP.NET haben, und deshalb neu initialisiert auf jedem einzelnen Seite zu laden werden müssen. Wir überwinden diese durch die Objekte Werte / Parameter an die Viewstate persistierenden.

Viele Artikel, die ich deshalb lesen empfehlen die Verwendung von Postback nicht, da dies erhebliche Aufwand der Seite hinzufügen können. Ich bin nicht auf der Suche nach, wie es zu deaktivieren, das weiß ich.

Was ich suche ist:

Welche Alternativen haben wir das Postback-Modell mit Kontrollen zu initialisieren?

Ich weiß, wir könnte verwenden Sie die Abfrage-Zeichenfolge, aber das scheint furchtbar unordentlich, und offensichtlich unzuverlässig.

Im Idealfall könnten Sie mir einen Überblick über die Architektur / Design von einem anderen Ansatz geben und die Vor-/ Nachteile der es ..

Vielen Dank ^ _ ^

War es hilfreich?

Lösung

Nun, Session State ist eine serverseitige Lösung, mit einem eigenen Stapel cruft zu behandeln, wenn Sie wollen ganz Viewstate zu vermeiden. Wirklich obwohl, in einem benutzerdefinierten Steuerelement Viewstate verwendet, ist alles schön und gut - nur wählerisch sein, was Sie speichern - nur speichern Deltas aus dem deklarierten Steuerzustand nicht speichert alles, was Sie auf Postbacks zu bekommen sind sowieso (zB von einem DB-Aufruf), etc.

Andere Tipps

Sie haben die Werte irgendwo zu speichern, so dass Sie den Query-String und versteckte Formularfelder begrenzt sind. Wenn Sie beziehen sich, dass HTTP, im Grunde ist es entweder GET oder POST-Parameter.

Ich nehme an, Sie Cookies verwenden können, aber das wäre wirklich chaotisch.

  1. Speichern Sie Ihren Objektstatus im Sitzungskontext: Dies wird die Belastung des Schaltzustand vom Client zum Server zu halten, die kann für kleine Intranet-Anwendungen akzeptabel sein. Für Websites, auf dem Kapital-I Internet, das wird nicht funktionieren;

  2. AJAX-enable Ihrer Kontrolle: in diesem Fall nur Zustand Änderungen müssen zurück gebucht werden. den richtigen Rahmen Picking ist der Schlüssel hier; finden Sie unter http://www.asp.net/ajax/ajaxcontroltoolkit/samples/ für den offiziellen MS-Ansatz; viele andere sind möglich.

Wenn Sie wirklich sind nach Alternativen zum Postback Modell zusammen suchen, dann würde ich vorschlagen, die ASP.NET MVC-Framework zu erforschen. Ich würde gerne WebForms an den Straßenrand treten und in MVC all meine Sachen tun, aber leider ist Legacy-Code ein tarbaby und Umschreiben ist so gut wie nie die Antwort, so steck ich weiter ...

Ich glaube, Sie immer noch Kontrollen etwas mis verstehen. Kontrollen haben nur das Problem, das Sie beschreiben, wenn man sich auf der Seite dynamisch hinzuzufügen. Wenn Sie Ihre Kontrollen im Voraus in dem aspx-Code deklarieren dann bauen sie mit der Seite entlang.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top