Announcement

Collapse
No announcement yet.

Postback bevor Buttonereignis

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Postback bevor Buttonereignis

    Hallo zusammen

    Meine Ausgangslage ist die Folgende:
    Ich habe auf meiner aspx Seite ein Formview Control. Ich verwende dort das Readonly-, das Edit und das Insertemplate. Im Page_Load Ereignis wird jeweils überprüft in welchem Modus sich das Formview gerade befindet und entsprechend Code ausgeführt. In diesem Code werden zum Beispiel einige Controls ausgeblendet abhängig vom Status eines anderen Controls.

    Im Readonly Modus habe ich nun einen Button hinzugefügt, der eigentlich nichts anderes machen sollte als in den Edit Modus zu wechseln.

    // Wechselt in den Bearbeitungsmodus
    protected void lbtnBearbeiten_Click(object sender, EventArgs e)
    {
    // In den Bearbeitungsmodus wechseln
    fvNewsWrite.ChangeMode(FormViewMode.Edit);
    }

    Nun habe ich das Problem, dass beim Click auf den Button zuerst der Postback ausgeführt wird und dann erst das Click Ereignis des Buttons. Somit erfolgt zuerst die Überprüfung im Page_Load und da ist der Modus natürlich noch ReadOnly. Der Modus wird anschliessend zwar gewechselt, jedoch wird die Funktion welche die Sichtbarkeiten meiner Controls regelt nicht mehr ausgeführt, da die Funktion ChangeMode kein Postback mehr auslöst.

    Ich müsste also irgendwie die Möglichkeit haben den Modus meines Formviews vor dem Postback zu ändern, damit beim Page_Load Ereignis bereits der neue Modus aktiv ist, oder ich müsste nach dem Aufruf der ChangeMode Funktion noch einmal einen Postback erzeugen können.

    Was für Möglichkeiten habe ich um mein Problem in den Griff zu kriegen? Ich bin für jede Hilfe dankbar..

    Gruss

    Manfred

  • #2
    Hallo,

    da HTTP ein zustandsloses Protokoll ist und jede im Browser ausgelöste Aktion als neuer Request/Response abgearbeitet werden muss, wird Page_Load immer zuerst ausgeführt. Dort kann über die Eigenschaft IsPostBack geprüft werden, ob ein PostBack vorliegt. Wenn ja, darf innerhalb von Page_Load nichts gemacht werden, was auf den aktuellen Zustand aufsetzt, denn die ursächlichen Ereignisse der Controls werden ja erst nach dem Page_Load abgearbeitet.

    Der Modus wird anschliessend zwar gewechselt, jedoch wird die Funktion welche die Sichtbarkeiten meiner Controls regelt nicht mehr ausgeführt, da die Funktion ChangeMode kein Postback mehr auslöst.
    Diese Funktion muss explizit von lbtnBearbeiten_Click aus aufgerufen werden, nachdem dort der Modus gewechselt wurde. Ein neuer PostBack macht nur dort Sinn, wo eine im Browser (Client-Rechner) vorgenommene Operation auch in der ASP.NET-Anwendung (Server) sichtbar sein soll.

    Comment

    Working...
    X