2 Stimmen

ClientID innerhalb der ASCX-Datei

Ich versuche, CLientID innerhalb der .ascx-Datei (Benutzersteuerung Mark-up) zu erhalten.

Während diese

My id is: <%=this.ClientID%>

wird wiedergegeben als Meine ID lautet: fracTemplateCtrl

Dies:

        <asp:Button ID="btnSave" runat="server" Text="Save Template" onclick="btnSave_Click" OnClientClick="return confirmSave('<%=this.ClientID%>');" />

wird als (im Quellcode) wiedergegeben:

        <input type="submit" name="fracTemplateCtrl$btnSave" value="Save Template" onclick="return confirmSave('&lt;%=this.ClientID%>');" id="fracTemplateCtrl_btnSave" />

Offensichtlich wird die Eigenschaft ClientId im zweiten Fall nicht ausgewertet. Wie kann ich dieses Problem lösen? (abgesehen von der Hardcodierung, die nicht die Lösung ist, möchte ich die Benutzersteuerung unabhängig machen)

3voto

Sie könnten den Wert der Eigenschaft OnClientClick serverseitig wie folgt festlegen:

btnSave.OnClientClick = "return confirmSave('" + this.ClientID + "')";

2voto

John MacIntyre Punkte 12808

Versuchen Sie stattdessen Folgendes

<asp:Button ID="btnSave" runat="server" Text="Save Template" onclick="btnSave_Click" OnClientClick="return confirmSave(this.id);" />

0 Stimmen

Ihre erste Antwort hat mich auf den richtigen Weg gebracht. Allerdings wird OnClientClick="return confirmSave(this.id);" tatsächlich als Schaltflächen-ID ausgewertet (und nicht als ID des Steuerelements). Sie hatten also beim ersten Mal recht:)

0 Stimmen

@gnomixa-Danke, aber beim ersten Mal lag ich noch falsch. Ich war nicht in der Lage, es genau und prägnant zu erklären, also habe ich einfach einen Code zusammengebastelt, von dem ich dachte, er würde funktionieren, aber da hatte ich schon vergessen, worum es geht ;-) Aber trotzdem danke für das Upvote.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X