Heim  >  Artikel  >  Backend-Entwicklung  >  asp.net-Deaktivierungsschaltfläche, um doppelte Übermittlungen zu verhindern

asp.net-Deaktivierungsschaltfläche, um doppelte Übermittlungen zu verhindern

巴扎黑
巴扎黑Original
2016-12-20 15:52:391759Durchsuche

Methode 1:

Fügen Sie einfach OnClientClick="this.disabled=true;" UseSubmitBehavior="False" zum Code auf der Schaltflächenfront hinzu.

Methode 2:
protected void Page_Load(object sender, EventArgs e)
{
Button1.Attributes.Add("onclick", this.GetPostBackEventReference(Button1) + ";this. disabled=true;");
}
Hinweis: Schreiben Sie es nicht in if (!Page.IsPostBack), da sonst ein Skriptfehler auftritt.



Der Vorgang besteht darin, die Schaltfläche nach dem Klicken auf deaktiviert zu setzen, d. h. this.disabled=true.
Obwohl der Vorgang sehr einfach ist, gibt es einen kleinen Trick (den ich vorher nicht kannte), nämlich das UseSubmitBehavior-Attribut, das im Button-Steuerelement nicht häufig verwendet wird, um den Button nach dem Klicken auf die Seite zu deaktivieren (Formular) muss noch übermittelt werden, lediglich UseSubmitBehavior muss auf „false“ gesetzt werden, andernfalls wird die Seite (Formular) nicht übermittelt.

MSDNs Erklärung von UseSubmitBehavior lautet:

Verwenden Sie das UseSubmitBehavior-Attribut, um anzugeben, ob das Button-Steuerelement den Übermittlungsmechanismus des Client-Browsers oder den ASP.NET-Postback-Mechanismus verwendet. Standardmäßig ist der Wert dieser Eigenschaft „true“, wodurch das Button-Steuerelement den Übermittlungsmechanismus des Browsers verwendet. Wenn „false“ angegeben ist, fügt das ASP.NET-Seitenframework der Seite ein Clientskript hinzu, um das Formular an den Server zu senden.

Wenn die UseSubmitBehavior-Eigenschaft falsch ist, können Steuerelemententwickler die GetPostBackEventReference-Methode verwenden, um das Client-Postback-Ereignis von Button zurückzugeben. Die von der GetPostBackEventReference-Methode zurückgegebene Zeichenfolge enthält den Text des Client-Funktionsaufrufs und kann in einen Client-Ereignishandler eingefügt werden.

Zum Beispiel
Height="30px" OnClientClick="this.disabled = true;" UseSubmitBehavior="False"/>


Wenn UseSubmitBehavior false ist, sehen Sie im Ausgabe-HTML



__doPostBack('Issue1$doPublishButton','') wird von asp.net hinzugefügt. Wenn UseSubmitBehavior wahr ist, gibt es keinen solchen Satz und die Seite (das Formular) wird nicht übermittelt.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn