Frage an c#, onclick, asp.net, controls – Hinzufügen eines OnClick-Ereignisses zum ASP.NET-Steuerelement

2

Ich würde gerne erstellenOnClick Veranstaltung für meinepanel. Bisher sehen die meisten Google-Ergebnisse ungefähr so ​​aus:Hinzufügen eines onclick-Ereignisses zum aspnet-Label. Gibt es eine Möglichkeit, die Codebehind-Funktion über Javascript oder Panel-Attribute aufzurufen? Da ich Benutzer auf eine neue Seite umleiten möchte und vorher einige Informationen in ViewSTate oder Sessionstate speichern möchte. Irgendwelche Vorschläge?

Wenn Sie keinen Zugriff auf Viewstate benötigen, würde dies eine zusätzliche Anfrage an den Server erfordern, die sehr teuer ist. Die Sitzung wäre in der unten beschriebenen Methode verfügbar. Liath
Wenn Sie trotzdem auf Servervariablen wie ViewState oder Session zugreifen müssen, sollten Sie postbacken und dannResponse.Redirect zur anderen Seite. Tim Schmelter

Deine Antwort

3   die antwort
2

Meine Aspx-Seite sieht so aus:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <script type="text/javascript">
        function CallMe() { __doPostBack('btnTemp', '') }
    </script>
</head>
<body>
    <form id="form1" runat="server">
         <asp:Button ID="btnTemp" runat="server" Text="Test" onclick="btnTemp_Click" />
         <div> <asp:Label ID="Label1" runat="server" Text="Label1"></asp:Label>
         <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label></div>
    </form>
</body>

Und mein Server Side Code ist wie folgt:

protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Attributes.Add("onClick", "CallMe();");
    }
protected void btnTemp_Click(object sender, EventArgs e)
    {

    }

Der Code, den ich geschrieben habe, enthält die using-Anweisung, die Page-Direktive usw. nicht im obigen Code.

0

e könnten die Schaltfläche wie gewohnt rendern und dann auf eine andere Seite zurückkehren. Hier müsste Ihre OnClick-Methode deklariert werden.

Ich würde nachdrücklich davon abraten, auf dieselbe Seite zurückzusenden und dann eine Response.Redirect () durchzuführen. Berücksichtigen Sie den Datenverkehr. Der Browser fordert die Seite an, sendet Beiträge zurück und sendet ein HttpRedirect und navigiert dann zur neuen Seite. Bei der oben beschriebenen Methode ist dies nicht erforderlich, und der Browser muss eine Anforderung weniger ausführen (dh, die Nachricht muss nicht gesendet oder die Seite auf dem Server neu erstellt werden). Dies ist ein erheblicher Leistungsvorteil.

2

Erhöhen Sie in Ihrer Java-Skriptmethode a__dopostback anruf an aServer side method.

<script type="text/javascript">
     function YourFunction()
     {
         __doPostBack('btnTemp', '')
     }
</script>

WoherbtnTemp ist eine ServerseiteTasteSchreiben Sie daher ein onClick-Ereignis dieser Schaltfläche auf der Serverseite, in dem Sie die Verarbeitung durchführen und dann auf eine andere Seite umleiten können.

Sie können ein gutes Verständnis von Dopostback bei habenDoPostBack-Verständnis

Das ist sehr seltsam, dass es mit mir zusammenarbeitet, aber nicht mit dir. Kannst du es bitte in einer separaten Anwendung versuchen? damit wir den Eindruck bekommen, dass etwas fehlt oder etwas in der Anwendung die Funktionalität stört. Ich habe beim Testen Ihres Codes weder eine Masterseite noch Ajax verwendet. Imran Balouch
Seltsam, aber wenn ich meinen Code in eine neue Seite einfüge, funktioniert dort auch das Postback nicht mehr. Oak
Könnten Sie bitte Ihren gesamten Code einfügen? Vielleicht fehlt mir etwas. Vielen Dank. Oak
Lasst unsSetzen Sie diese Diskussion im Chat fort Imran Balouch

Verwandte Fragen