Ich versuche, das ImageButton-Steuerelement nur für die clientseitige Skriptausführung zu verwenden. Ich kann das clientseitige Skript angeben, das mit der OnClientClick-Eigenschaft ausgeführt werden soll, aber wie kann ich verhindern, dass es jedes Mal, wenn der Benutzer darauf klickt, versucht, einen Post zu senden? Es gibt keinen Grund zum Posten, wenn diese Schaltfläche angeklickt wird. Ich habe CausesValidation auf False gesetzt, aber dies verhindert nicht das Posten.
Hier ist eine Möglichkeit, wie Sie es tun können, ohne mit der Postback-Funktion anderer Steuerelemente zu kollidieren:
Definieren Sie Ihre Schaltfläche in etwa wie folgt:
%Vor%Das "my" -Ende im Handler für OnClientClick ist eine Möglichkeit, das __doPostBack-Client-Ereignis von asp.net umzubenennen, das das Postback erzwingt; Wir überschreiben einfach das Verhalten, indem wir nichts Ähnliches wie dieses Skript tun:
%Vor%Edit: Yeesh, ich habe das Gefühl, dass ich nach einigen schmutzigen Tricks, die ich ziehen muss, duschen muss, um asp.net dazu zu bringen, das zu tun, was ich will.
Ich weiß, dass dieses Problem bereits beantwortet wurde, aber eine einfache Lösung besteht darin, von der HTML onclick-Methode (d. h. der ASPX OnClientClick-Methode) false zurückzugeben, z. B.
%Vor%Die Rückgabe false verhindert, dass der Browser die Anfrage an den Server i.s. stoppt das .NET-Postback.
Lösung 1
%Vor%ODER Lösung 2
%Vor%Zusätzlich (Lösung 2) kann Ihre Javascript-Methode in dieser Form sein
%Vor%im Code hinter
%Vor%Das funktioniert großartig für mich:
Verwenden Sie OnClientClick
, um Ihr Skript zu schreiben und PostBackUrl="javascript:void(0);"
, um Postback zu vermeiden.
Verwenden Sie OnClientClick, um Ihr Skript zu schreiben und PostBackUrl="javascript: void (0);" Postback vermeiden
Tags und Links asp.net post postback submit imagebutton