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 verhindere ich, 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, dies verhindert jedoch nicht das Posten.Kann ich ein ASP.NET-ImageButton erstellen, das nicht postbackt?
Antwort
Hier ist eine Art und Weise Sie es ohne in Konflikt mit dem Postback Funktion anderer Kontrollen tun könnte:
Definieren Sie Ihre Taste etwas wie folgt aus:
<asp:Button runat="server" Text="Button" UseSubmitBehavior="false" OnClientClick="alert('my client script here');my" />
Die „my“ in der Prozedur endet für OnClientClick ist eine Möglichkeit, das __doPostBack-Client-Ereignis von asp.net umzubenennen, das das Postback erzwingt; wir einfach das Verhalten außer Kraft setzen, indem nichts Vergleichbares zu diesem Skript zu tun:
<script type="text/javascript">
function my__doPostBack(eventTarget, eventArgument) {
//Just swallow the click without postback of the form
}
</script>
Edit: Yeesh, ich fühle mich wie ich eine Dusche, nachdem einige der schmutzigen Tricks nehmen müssen, dass ich, um ziehen müssen asp zu bekommen. net zu tun, was ich will.
Der" mein "Trick funktionierte für mich, aber so hat "Return false" am Ende, was mich weniger eklig fühlen – Carl
Ich habe das gleiche Problem ... http://stackoverflow.com/questions/25979847/how-to-prevent-postback-on-asp-button -while-Anzeige-ein-Popup-Using-Jquery. Ich bin gerade dabei, Ihre Lösung zu testen. – SearchForKnowledge
<image src="..." onclick="DoYourThing();" />
Das wäre perfekt, außer dass diese Schaltfläche dynamisch auf der Serverseite erstellt wird und ein .NET-Objekt sein muss. – Giffyguy
Sie können immer ein 'asp: Literal'-Steuerelement auf Ihrer Seite haben, und in Ihrem Code hinter dynamisch gesetzten Text, dh:' myLiteral.Text = ""; ' –
eine serverseitige Bildsteuerung
<asp:Image runat="server" .../>
Ziemlich sicher Verwenden Sie den Client onclick
Ereignis, dass hinzufügen.
wäre eine andere Lösung, die eine PostBackUrl zu definieren, die nichts
<asp:imagebutton runat="server" PostBackUrl="javascript:void(0);" .../>
weiß ich dieses Problem bereits beantwortet worden, aber eine einfache Lösung ist aus dem HTML-Onclick-Methode (dh die ASPX OnClientClick Methode) false zurück z.B
Die Rückgabe false verhindert, dass der Browser die Anfrage an den Server i.s. stoppt das .NET-Postback.
Ich möchte eine zusätzliche Option von OnClientClick = "doYourStuff();" vorschlagen. Gib dann innerhalb von DoYourStuff() false zurück. Auf diese Weise kann DoYourStuff abhängig von anderen Faktoren Wahr oder Falsch zurückgeben und möglicherweise das Postback für bestimmte Bedingungen erlauben. – TTT
Wenn ich mehrere Tasten in einer GridView habe, funktioniert meine Funktion nur beim ersten Mal und zu einem späteren Zeitpunkt wird die Funktion nicht ausgelöst. http://stackoverflow.com/questions/25979847/how-to-prevent-postback-on-asp-button-while-displaying-a-popup-using-jquery – SearchForKnowledge
@TTT Das ist, was ich zuerst versuchte, aber aus irgendeinem Grund es funktioniert nicht. Obwohl, wenn ich das 'return false;' im 'OnClientClick' als CodeClimber vorgeschlagen habe, funktioniert es. – TheWanderingMind
Dies funktioniert gut für mich:
Verwenden OnClientClick
Ihr Skript zu schreiben und PostBackUrl="javascript:void(0);"
Postbacks zu vermeiden.
<div class="close_but">
<asp:ImageButton ID="imgbtnEChartZoomClose" runat="server" ImageUrl="images/close.png" OnClientClick="javascript:zoomclosepopup();" PostBackUrl="javascript:void(0);" />
</div>
Lösung 1
<asp:ImageButton ID="btn" runat="server" ImageUrl="~/images/yourimage.jpg"
OnClientClick="return false;" />
OR Lösung 2
<asp:ImageButton ID="btn" runat="server" ImageUrl="~/images/yourimage.jpg"
OnClientClick="yourmethod(); return false;" />
Zusätzlich (Lösung 2), sie JavaScript Verfahren in dieser Form sein kann
<script type="text/javascript">
function yourmethod() {
__doPostBack (__EVENTTARGET,__EVENTARGUMENT); //for example __doPostBack ('idValue',3);
}
</script>
in Code hinter
protected void Page_Load(object sender, System.EventArgs e)
{
if (this.IsPostBack) {
string eventTarget = this.Request("__EVENTTARGET") == null ? string.Empty : this.Request("__EVENTTARGET");
string eventArgument = this.Request("__EVENTARGUMENT") == null ? string.Empty : this.Request("__EVENTARGUMENT");
}
}
Verwenden OnClientClick Ihr Skript und PostBackUrl = schreiben "javascript: void (0);" Postback vermeiden
- 1. Wie kann ich ein P2P-Spiel erstellen, das netzwerkübergreifend funktioniert?
- 2. Kann ich ein Makro erstellen, das Schleifen abrollt?
- 3. Wie kann ich ein neues PSDrive erstellen, indem Sie ein Passwort verwenden, das SystemSecuredString nicht wahr?
- 4. Kann ich ein OneToOneField erstellen, das ein Objekt erstellt, wenn es nicht existiert?
- 5. Java - Wie kann ich ein JTextfeld erstellen, das abgefragt, aber nicht aktualisiert werden kann?
- 6. Objekt erstellen, das nicht gebeizt werden kann
- 7. Wie kann ich ein zweispaltiges Drucklayout erstellen?
- 8. RxJS 5: Kann ich ein "BehaviorObservable" erstellen?
- 9. Wie kann ich ein HTML-Popup erstellen?
- 10. Kann ich ein Objekt desselben Typs erstellen?
- 11. Wie kann ich ein CSS-Gleitmenü erstellen?
- 12. Kann ich ein Wörterbuch generischer Typen erstellen?
- 13. kann ich ein NestedScroll Layout so erstellen?
- 14. Django: Wie kann ich ein Mehrfachauswahlformular erstellen?
- 15. Kann ich ein Datumsobjekt erstellen, in dem das Jahr nicht anwendbar ist?
- 16. Kann ich mit Gollum ein Wiki erstellen, das nicht von Github gehostet wird?
- 17. Wie kann ich ein Div erstellen, das sich nicht ändert, wenn sich der innere Inhalt ändert?
- 18. Wie kann ich ein Wort erstellen, das den vorherigen Buchstaben des Worts nicht enthält?
- 19. Wie kann ich ein Shelltoast erstellen?
- 20. Kann ich ein UIContainerView programmatisch erstellen?
- 21. Wie kann ich ein neues Zahlenanzeigeformat erstellen?
- 22. Kann ich ein Google-Konto programmgesteuert erstellen?
- 23. Wie kann ich ein MSI-Setup erstellen?
- 24. Kann ich nicht-sprachbasierte globale .resx erstellen?
- 25. Ich kann das Makro läuft nicht erhalten, wenn ein Dokument
- 26. Wie kann ich ein Kreisdiagramm erstellen, damit ich auf ein beliebiges Stück klicken kann?
- 27. Ich kann eine Datenbank programmgesteuert nicht erstellen
- 28. Wie kann ich ein Formular erstellen, das nicht deaktiviert ist, wenn ein anderes Formular modal angezeigt wird?
- 29. Kann ich das Erstellen einer .NET-Webanwendung in IIS automatisieren?
- 30. Viewbox-Verhalten, das ich nicht verstehen kann
Jeder Grund, nicht nur das onclick Ereignis eines img Umbaus zu verwenden? –
@BigJason: Ich würde es gerne vermeiden, wenn möglich. Diese Schaltfläche ist sehr komplex und auf der Serverseite aufgebaut. – Giffyguy