Kann ich die Kontrolle Ereignisse ausgelöst wird auf einem ASP-Postbacks herausfinden?

StackOverflow https://stackoverflow.com/questions/243120

  •  04-07-2019
  •  | 
  •  

Frage

Ist es möglich, eine Liste von Steuer Ereignissen zu erhalten, die Feuer gehen, bevor sie passieren, sagt in den Page_Load Handler?

Zum Beispiel, wenn eine Schaltfläche geklickt wurde, kann ich das herausfinden, bevor die button_click Event-Handler aufgerufen wird?

War es hilfreich?

Lösung

Sie haben eine wirklich schwierige Frage gepflückt ... der Grund dafür ist, dass es mehrere Möglichkeiten gibt, die Ereignisse anspringt.

1) __EVENTTARGET (wie oben erwähnt) 2) Wenn der Name Ihrer Schaltfläche MyButt ist, dann werden Sie „MyButt =“ in der Abfragezeichenfolge sehen. 3) Wenn jede Steuerung (wie ein Textfeld zum Beispiel) die Anforderung überprüft, ob es Wert ist in der Viewstate ist anders als gebucht, dann ein „Text_Changed“ anspringt.

Aber Sie # 1 und # 2 zu überprüfen, ein paar Plätze nutzen können.

Andere Tipps

Leider ist der __EVENTTARGET Wert Abfrage wird nicht den Trick. Oft wird dieser Wert leer sein. Die Postbacks Verarbeitung macht einige Entscheidungen darüber, welche Ereignisse basierend auf mehr als nur den Ereignis Zielwert (falls vorhanden) Teststeuerzustandswerte gegen die Werte durch die Form (wie ein Textfeld) bestimmt, geschrieben zu erhöhen, ob Ereignisse wie Textchanged ausgelöst werden sollen .

Neben tatsächlich einen Event-Handler für alle Bedienelemente Einhaken Sie wünschen Ereignisse zu erfassen, ich glaube nicht, dass es eine Möglichkeit, es zu bestimmen ist. Es könnte möglich sein, im Grunde zu tun, was der Rahmen allerdings tut. Sie müssten es zwischen tun, wenn die Kontrollen erstellt wurden und Ansichtszustand wiederhergestellt wurde, aber bevor die gebuchten Werte verarbeitet werden. Sie könnten die Stromsteuerwerte (von Viewstate) mit dem gebuchten Wert vergleichen zu können, im Wesentlichen zu bestimmen, welche Ereignisse würde Feuer.

Was ist Ihr Ziel mit diesem? Vielleicht gibt es eine bessere Lösung.

Im Folgenden finden Sie den verstümmelten-ID für eine Schaltfläche, wenn geklickt wird.

Page.Request.Form["__EVENTTARGET"]

Hier ist ein Beispiel , dass ich glaube, dass Ihre Antworten Frage.

Eine andere Möglichkeit wäre, nur ein paar Haltepunkte zu setzen, wenn das Debuggen.

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