Verhindert versehentliches Doppel-Klick auf eine Schaltfläche
Ich habe ein paar Steuerelemente, die Erben von ASP.NET Tasten und verwenden "onserverclick'.
Wenn der Benutzer klickt zweimal auf die Taste feuert zwei server-side-events. Wie kann ich dies verhindern?
Ich habe versucht, "diese.disabled='true'" nach dem klicken (in das 'onclick' - Attribut), die über javascript, aber das blockiert die ersten postback als gut.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Finden Sie in diesem Beispiel für das deaktivieren der control postback. Es sollte Ihnen helfen, tun, was Sie zu erreichen versuchen.
http://encosia.com/2007/04/17/disable-a-button-control-during-postback/
Die Sie nicht unbedingt wollen, zeigen Sie die Schaltfläche deaktiviert postback. Sie wollen sicherstellen, dass Sie nicht versehentlich senden zweimal. So deaktivieren oder ausblenden der button, mit dem Ergebnis einer server-Seite Aktion ist schon zu spät in das Spiel. Von diesem Punkt die 2. Anfrage ist bereits auf dem Weg. Sie müssen entweder mit javascript oder stellen Sie sicher, dass Ihre server-side-code nicht zweimal ausgeführt.
Im Falle eines updatepanel und ein button in einem FormView-Vorlage, die ich verwenden folgenden Ansatz:
Dieser bricht den folgenden postback an, ob aktuell ein asynchroner postback ist noch aktiv. Funktioniert perfekt.
Jemand gesagt das irgendwo hier vor ein paar Tagen, und ich Stimme - verwenden Sie javascript, um einfach verstecken Sie die Taste, anstatt es zu deaktivieren; Sie konnten zeigen, ein "spinner" Bild in einem Ort, in dem der Benutzer wissen, was Los ist.
Anstatt uns zu verstecken, was ich gemacht habe, ist swapping-buttons mit javascript. Andere anzeigen ausgegraut Bild auf den Klick auf den ersten button.
Legen Sie die Schaltfläche Eigenschaft UseSubmitBehavior auf false. Erstellen Sie dann eine OnClientClick-Funktion, deaktiviert die Taste.
Es würde in etwa so Aussehen:
Schnellste, billigste Weg:
Können Sie auch versuchen, zum Beispiel btnSave.Enable = false; wenn die Taste getroffen wird und vor der Verarbeitung für die Schaltfläche erfolgt in der Click-Ereignis-routine. Wenn Sie es brauchen, um zurückgesetzt werden, damit Sie aktiviert werden, haben eine separate Taste, der Reset der Knopf für die Wiederverwendung.
Andere Methode ist, um die Schaltfläche mit der überprüfung, so dass der Benutzer gefragt, ob Sie Speichern möchten, es sollte pop-up beide Male.
Noch eine weitere Methode wäre die fahne der ersten Instanz legen Sie dann ein popup für die zweite zu überprüfen, eine zweite oder weitere Verwendung.