wake-up-neo.net

C # -Code hinter Button Click Event, ASP.NET

Ich arbeite mit HTML, das vom Kollegen in .aspx bereitgestellt wird, und ich muss die Funktionalität der mit HTML erstellten Schaltfläche in .aspx.cs (C #) programmieren. Der Code, mit dem ich mich befasse, lautet wie folgt:

    </div>
            <button style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue">Ship</button>
            <button style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue">Rate</button>

    </div>

Ich bin neu im HTML-Bereich, aber bei der Suche nach Lösungen zu ähnlichen Fragen sehe ich oft den HTML-Code für eine Funktionsschaltfläche, die eher aussieht

<button type="submit" runat="server" id="btnLogin" class="button" onclick="btnLogin_Click();">

und manchmal mit einem 

<asp:

am Anfang. Ich habe einfach versucht, die Runat- und Onclick-Felder dem HTML-Code hinzuzufügen, die einer C # -Methode im aspx.cs-Code entsprechen, aber ich konnte den Button nicht dazu bringen, die Methode im Code dahinter auszulösen. Ich bin davon ausgegangen, dass ich, wenn ich die Methode mit dem Namen onclick zum C # aspx.cs-Code hinzufüge, diese einfach beim Klicken auf die Schaltfläche ausführen würde, aber ich bin eindeutig falsch.

Kann ich die Funktionalität der Schaltfläche im dahinterliegenden Code programmieren, ohne den mir zur Verfügung gestellten HTML-Code zu ändern? Oder muss ich zuerst das HTML ändern und wenn ja wie?

5
KMcL

Sie könnten wahrscheinlich das runat="server"-Attribut zu Ihren Buttons hinzufügen, aber ich habe es noch nie ausprobiert.

Das Ersetzen der Seiten sollte das Erscheinungsbild der Seite nicht ändern. Fügen Sie einfach CssClass="xxx" hinzu, um die CSS anzuwenden, falls vorhanden, andernfalls werden sie trotzdem in Standard-HTML-Elementen dargestellt.

Ihr Markup sollte ungefähr so ​​aussehen:

<asp:Button runat="server" id="btnLogin" Text="Log In" OnClick="btnLogin_Click" />

Der übereinstimmende Ereignishandler in Ihrem Code würde folgendermaßen aussehen:

protected void btnLogin_Click(object sender, EventArgs e)
{
    // Here's where you do stuff.
}
8
Ortund

Es gibt Möglichkeiten, asp.net-Code hinter dem Handler über HTML-Steuerelemente zu erreichen. Sie könnten versuchen, einen onserverclick-Handler hinzuzufügen, oder Sie können ein Postback mit Argumenten ausführen und einen Handler zum Postback im Konstruktor hinzufügen.

Einige Links, um Ihnen dabei zu helfen:

https://forums.asp.net/t/1650304.aspx?Calling+code+behind+function+from+a+html+button

aufrufendes serverseitiges Ereignis von der HTML-Schaltfläche

0
praty

sie müssen das ersetzen 

onclick="btnLogin_Click();"

mit

onclick="btnLogin_Click"

weil die onClick-Eigenschaft der asp.net-Schaltflächen den Namen der Funktion enthalten muss, die in der aspx.cs-Datei aufgerufen wird, und nicht den tatsächlichen Aufruf.

0
Plargato

Mein Vorschlag wäre, das HTML-Steuerelement in <asp:Button /> zu ändern und den Event-Handler mit ASP.NET zu verbinden. Syntax würde ungefähr so ​​aussehen

<asp:Button ID="Test" runat="server" Text="Button" OnClick="Test_Click" />
0
Praveen

Wenn Sie ein Tool wie Visual Studio/Express verwenden, rufen Sie die betreffende Seite (die Aspx-Seite) auf.

Ziehen Sie eine Schaltfläche von der Steuerelement-Symbolleiste auf die Seite.

Wenn Sie in der Entwurfsansicht auf die Schaltfläche doppelklicken, wird automatisch der Ereignishandler im Code dahinter erstellt.

Das Schaltflächensteuerelement verfügt über die Eigenschaften OnClick und OnClientClick. Verwenden Sie OnClientClick, um JavaScript auf der Seite auszulösen.

Ich hoffe es hilft

0
Darren Street