it-swarm.com.de

Deaktivieren Sie das Postback beim Klicken auf eine Schaltfläche

Ich möchte Postback deaktivieren, nachdem Sie auf einen <asp:Button> geklickt haben. Ich habe das versucht, indem ich onclick="return false" zuweist, aber in der Schaltfläche funktioniert das nicht.

Wie kann ich das beheben?

15
user947344

Ich könnte dies mit einem UpdatePanel beheben, das die implizierten Steuerelemente/Elemente enthält.

1
user947344
onClientClick="return false"

Das sollte es tun! Onclick verweist auf eine ASP.net-Funktion, onClientClick wird als OnClick im Steuerelement in HTML dargestellt.

12
Tom Gullen

onclick wird verwendet, um die serverseitigen Ereignisse zu verbinden. Sie müssen den Handler OnClientClick verwenden, z. B. <asp:button OnClientClick="return false;" />.

2
arviman

Zu sehen, dass keine dieser Antworten mir geholfen hat. Ich habe eine Lösung gefunden. Anstelle der ASP.NET-Schaltfläche <asp:Button> sollten Sie die HTML-Schaltfläche verwenden. Es hat perfekt funktioniert und sieht genauso aus wie die ASP.NET-Schaltfläche. Um die HTML-Schaltfläche auf Server-Seite zu senden, verwenden Sie das Attribut onserverclick.

<input id="btnState" class="AddButtons" runat="server" type="button" value="Add State" onclick="swap('one', 'two');" />

Für meinen Code verwendete ich JS, um auf der Serverseite etwas zu tun. Der <asp:Button> würde nicht aufhören, einen Beitrag zurück zu schreiben, aber wie gesagt, der HTML-Button hat mein Problem behoben. Bitte als Antwort markieren oder abstimmen, wenn dies Ihnen geholfen hat.

1
bds89

Es hat bei mir so funktioniert:

Im <body>:

function myfunction() {
            return false;
        }

und in <head>:

<asp:ImageButton ID="ImageButton1" runat="server" Height="52px" Width="58px" OnClientClick="myfunction(); return false;"/>
1
Ionut

Benutze das:- 

  someID.Attributes.Add("onClick", "return false;");
0
Sunil Chaudhary

Setzen Sie Ihren asp-Button gerne in das Updatepanel

<asp:UpdatePanel ID="updPnl" runat="server" UpdateMode="Conditional" RenderMode="Block">
  <ContentTemplate>
    <asp:Button ID="btnID" runat="server"  OnClick="btn_Click" />
  </ContentTemplate>
</asp:UpdatePanel>

Hoffe das ist hilfreich

0
user8258013

Da Sie dies nach dem Postback tun möchten, gehe ich davon aus, dass Sie Doppelklick-Postbacks verhindern möchten. In diesem Fall ist es am besten, wenn Sie eine statusabhängige Variable haben, die Sie nach dem ersten Klick auf der Clientseite festlegen. Als einfaches Beispiel

var clicked = false;
function AllowOneClick(){
   if(!clicked){
      clicked = true;
      return true;
    }
 return false;
 }

Dann legen Sie OnClientClick fest, um dieses Methodenergebnis auf Ihrer Schaltfläche zurückzugeben. OnclientClick="return AllowOneClick()" Dies funktioniert natürlich nur für eine Schaltfläche, aber es sollte Ihnen die allgemeine Idee vermitteln.

0
kmcc049

mit UseSubmitBehavior = "false" können Sie Postbacks von Onclick deaktivieren 

0
seetha

In meinem Fall hat keine der oben genannten Lösungen für mich funktioniert. 

Ich wollte zuerst eine Funktion auf der Clientseite aufrufen und dann den Postback zum Server anhalten. Meine Lösung bestand darin, einfach das return-Schlüsselwort hinzuzufügen, bevor ich meine clientseitige Funktion aufrufe, d. H .:

<asp:Button Runat=Server OnClientClick="return fyFunction;">

Mein clientseitiges Skript enthält return false in der letzten Codezeile.

0
Hugo Nava Kopp