ホームページ  >  記事  >  バックエンド開発  >  重複送信を防ぐための asp.net 無効化ボタン

重複送信を防ぐための asp.net 無効化ボタン

巴扎黑
巴扎黑オリジナル
2016-12-20 15:52:391766ブラウズ

方法 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 メソッドによって返される文字列には、クライアント関数呼び出しのテキストが含まれており、クライアント イベント ハンドラーに挿入できます。

例:
Height="30px" OnClientClick="this.disabled=true;" UseSubmitBehavior="False " />


UseSubmitBehavior が false の場合、出力 HTML に表示されます



__doPostBack('Issue1$doPublishButton','')、これはasp.netが追加されました。 UseSubmitBehavior が true の場合、そのような文は存在せず、ページ (フォーム) は送信されません。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。