2012-03-25 12 views
0

Ich benutze Umbraco und jede Seite ist eine Masterseite, die grundsätzlich ein Submaster eines anderen Masters ist. Daher gibt es mehrere PAGE_LOAD-Aufrufe pro Seite und ich brauche eine Möglichkeit, zwischen den gebuchten Formularen zu unterscheiden. (So ​​kann ich bedingte Verarbeitung ausführen, um die gebuchten Daten für jedes Formular zu verarbeiten).Wie unterscheidet man zwischen geposteten Formularen?

IE Ich habe page.ispostback oder was auch immer, aber das wird immer Datei Ich dachte, ich könnte ein verstecktes Feld in jedes Formular einschließen und überprüfen, ob das existiert um herauszufinden, welches Formular veröffentlicht wurde, wie soll ich das machen ?

Antwort

1

Sie sollten dies wie jede andere Webforms-Anwendung betrachten.

Versuchen Sie also nicht unbedingt, Ihre Postbacks im Page_Load-Ereignis zu verarbeiten.

Nehmen wir an, Sie haben ein Formular "Suchen" und ein Formular "Newsletter abonnieren". Der Senden-Button von jedem wird das Postback der gleichen Seite verursachen. Sie können diesen Schaltflächen ein Ereignis zuordnen, um die Formularvorlage abzufangen und die Funktionalität des Angebots zu diesem Zeitpunkt statt auf Page_Load zu verarbeiten.

Normalerweise trennen alle meine Mini-Formulare in separate Benutzersteuerungen mit einem Codebehind, das eine btnSubmit_OnClick(object sender, EventArgs e) hat, wo ich alle meine Logik abfeuern.

Sie möchten auch sicherstellen, dass jede Sammlung von Feldern einen eindeutigen ValidationGroup-Attributwert verwendet, so dass das Absenden eines Formulars nicht die Validierung eines anderen Formulars auslöst.

Der Vorteil davon ist, dass Sie dann eine Bibliothek von Benutzersteuerungen für verschiedene Funktionen erstellen können, die dann alle unabhängig voneinander sind. Ich finde oft, dass ich diese einfach heben und sie von einem Umbraco-Projekt zum nächsten wiederverwenden kann.

Verwandte Themen