ホームページ >バックエンド開発 >C#.Net チュートリアル >重複送信を防ぐための asp.net 無効化ボタン
方法 1:
ボタンのフロント コードに OnClientClick="this.disabled=true;" UseSubmitBehavior="False" を追加するだけです。
方法 2:
protected void Page_Load(object sender, EventArgs e)
{
Button1.Attributes.Add("onclick", this.GetPostBackEventReference(Button1) + ";this.disabled=true;");注: if (!Page.IsPostBack) には記述しないでください。記述しないと、スクリプト エラーが発生します。
このプロセスでは、ボタンをクリックした後にボタンを無効に設定します (this.disabled=true)。
プロセスは非常に単純ですが、ちょっとしたトリックがあります (私はこれまで知りませんでした)。これは、Button コントロールでは一般的に使用されない UseSubmitBehavior 属性です。これは、クリック後にボタンを無効にし、ページ (フォーム) を作成します。 ) を送信する必要がある場合は、UseSubmitBehavior を false に設定する必要があります。そうしないと、ページ (フォーム) は送信されません。
MSDN の UseSubmitBehavior の説明は次のとおりです:
UseSubmitBehavior 属性を使用して、Button コントロールがクライアント ブラウザーの送信メカニズムを使用するか、ASP.NET ポストバック メカニズムを使用するかを指定します。デフォルトでは、このプロパティの値は true なので、Button コントロールはブラウザーの送信メカニズムを使用します。 false が指定されている場合、ASP.NET ページ フレームワークはクライアント スクリプトをページに追加して、フォームをサーバーに送信します。
UseSubmitBehavior プロパティが false の場合、コントロール開発者は GetPostBackEventReference メソッドを使用して Button のクライアント ポストバック イベントを返すことができます。 GetPostBackEventReference メソッドによって返される文字列には、クライアント関数呼び出しのテキストが含まれており、クライアント イベント ハンドラーに挿入できます。
例:
UseSubmitBehavior が false の場合、出力 HTML に表示されます
__doPostBack('Issue1$doPublishButton','')、これはasp.netが追加されました。 UseSubmitBehavior が true の場合、そのような文は存在せず、ページ (フォーム) は送信されません。