3

asp.net ボタン コントロールがあります。私の要件は、ボタンをクリックすると無効になり、サーバー側のイベントを同時に発生させることです。ボタンを無効にしています

onclientclick = "this.disabled = true;"

サーバー側のメソッドを呼び出す

onclick = "someserversidemethod"

しかし問題は、ボタンが無効になり、サーバー側のイベントが発生しないことです。クライアント側とサーバー側の両方のイベントを同時に発生させたい。助けてください。

4

1 に答える 1

4

あなたが持っているものを保持し、プロパティも設定してくださいUseSubmitBehavior="false"。これにより、ボタンは組み込みのブラウザー メカニズムではなく、asp.net ポストバック メカニズムを使用するようになります。

詳しくはこちら

編集

標準のブラウザーは、コントロールをクリックすると常にフォームを送信します<input type="submit">(これは、 を使用したときに HTML にレンダリングされるものです<asp:Button>)。ASP.NET はこの機能を使用して、サーバーへのポストバックを開始します。

あなたが抱えている問題は、ボタンが無効になっている場合 (JavaScript で行っているように)、ブラウザーがフォームを送信しない(つまり、ポストバックが発生しない) ことです。

属性UseSubmitBehavior="false"を使用することで、ブラウザが自分で送信できるという事実を無視するように ASP.NET に指示し、代わりに、ASP.NET が提供する JavaScript ポストバック メソッド (などに使用されるメソッドと同じメソッド) をボタンで使用する必要がありAutoPostback="true"ます<asp:Checkbox>。 .

JavaScript ポストバックは、コントロールを無効に設定したという事実を無視します。つまり、コントロールは画面上で無効になりますが、ポストバックは引き続き発生します。

それが理にかなっていることを願っています

于 2012-07-21T15:36:10.510 に答える