2009-06-04 9 views
3

Ich habe ein ASP.NET-Webformular. Beim ersten Senden des Formulars wird das SubmitButton_Click-Ereignis ausgelöst.ASP.NET Click() Ereignis löst nicht auf zweiten Postback

Das Formular wird entweder mit Überprüfungsfehlern oder mit der Option zum erneuten Senden des Formulars mit neuen Werten an den Browser zurückgegeben.

Wenn das Formular erneut gesendet wird, wird das SubmitButton_Click-Ereignis nie ausgelöst. Page_Load wird ausgelöst, nicht jedoch die Schaltfläche.

Weiß jemand, warum ich dieses Verhalten auf der Serverseite sehen würde?

(Ich benutze jQuery und die Validierung der Client-Seite, aber ich glaube nicht, dass es ein Problem verursacht. Dachte, ich würde es sowieso erwähnen).

Edit:

<asp:Button ID="SubmitButton" OnClick="SubmitButton_Click" 
     runat="server" /> 

Ereignis auf der Steuerung festgelegt ist, nicht im Code.

+0

Code wird helfen. Vor allem, wie Sie Ihren Event-Handler verkabeln. –

Antwort

0

Ist der JQuery Absenden des Formulars? Wenn __doPostBack() nicht auf der Clientseite (mit den entsprechenden Argumenten) aufgerufen wird, tritt das serverseitige Ereignis nicht auf.

+0

Das Formular wird weiterhin auf dem Server gepostet, während Page_Load ausgelöst wird. Das ist mir seltsam. – y0mbo

+0

Page_Load() wird immer dann ausgelöst, wenn die Seite aus irgendeinem Grund geladen wird, was meinen Vorschlag nicht ausschließt. Wenn Sie meinen Vorschlag ausschließen können, haben @Joel Coehoorn und @ nikmd23 auch wichtige Dinge zu sehen. – jrcs3

+0

Ich denke, das ist wahrscheinlich was passiert. Die Überprüfungsroutine scheint das Formular zu senden, bevor der __doPostBack() aufgerufen werden kann. – y0mbo

0

Wie verbinden Sie Ihren Event-Handler?

Es klingt wie Sie es sind die Verdrahtung in einem if (IsPostBack) Block auf, die zum zweiten Mal nicht ausgeführt wird ...

+0

Beat mich dazu! Ich denke du meinst wenn (! IsPostBack) obwohl :-) – dariom

+0

Nein, nicht im Code hinterdrahtet. – y0mbo

0

Wie ist der Click-Ereignishandler mit der Schaltfläche "Senden" verknüpft? Deklarativ oder in Code?

Wenn es im Code ist, stellen Sie sicher, dass Sie nicht in einem Block wie dies zu tun:

if (!Page.IsPostBack) { 
    submitButton.Click += new EventHandler(submitButton_Click); 
} 

Dies wird die Event-Handler verhindern, angebracht ist, wenn die Seite zurückgesendet wird (dh Page.IsPostBack ist true).

2

Dies kann bei dynamisch erstellten Steuerelementen auftreten, wenn Sie diese nicht rechtzeitig im Seitenlebenszyklus erstellen. Sie haben ein paar Details, aber ist Ihre Schaltfläche dynamisch erstellt?

Verwandte Themen