Kann ich ein ASP.NET-ImageButton erstellen, das nicht postbackt?

7

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.

    
Giffyguy 24.04.2010, 04:51
quelle

8 Antworten

4

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.

    
Pierreten 24.04.2010, 05:20
quelle
19

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.

    
CodeClimber 19.04.2012 15:01
quelle
2

Eine andere Lösung wäre, eine PostBackUrl zu definieren, die nichts tut

%Vor%     
sarghir 28.10.2011 16:44
quelle
1
%Vor%     
John Gietzen 24.04.2010 04:55
quelle
1

Verwenden Sie ein serverseitiges Image-Steuerelement

%Vor%

Ziemlich sicher, dass Sie das Client onclick -Ereignis dazu hinzufügen können.

    
mxmissile 24.04.2010 05:05
quelle
1

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%     
Vincenzo Costa 21.06.2013 10:11
quelle
1

Das funktioniert großartig für mich:

Verwenden Sie OnClientClick , um Ihr Skript zu schreiben und PostBackUrl="javascript:void(0);" , um Postback zu vermeiden.

%Vor%     
Somnath Kharat 14.06.2013 07:37
quelle
0

Verwenden Sie OnClientClick, um Ihr Skript zu schreiben und PostBackUrl="javascript: void (0);" Postback vermeiden

    
PRADEEP SINGH Chundawat 06.04.2016 06:41
quelle