2009-03-23 6 views
2

Ich versuche CLientID innerhalb der .ascx-Datei (User Control Mark-Up) zu erhalten.ClientID innerhalb der ASCX-Datei

Während diese

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

macht als Meine ID ist: fracTemplateCtrl

Dieses:

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

als (im Quellcode) macht:

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

Offensichtlich wird die ClientId-Eigenschaft im zweiten Fall nicht ausgewertet. Wie überwinde ich dieses Problem? (Abgesehen von Hardcoding, das ist nicht die Antwort, würde Ich mag die Benutzersteuerung unabhängig machen)

Antwort

3

Sie den Wert Server-Seite wie folgt aus der OnClientClick Eigenschaft könnte:

2

Versuchen Sie stattdessen

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

ok, kann es jetzt sehen, danke! – sarsnake

+0

Eigentlich brachte mich deine erste Antwort in die richtige Richtung. OnClientClick = "return confirmSave (this.id);" wird tatsächlich als Button-ID ausgewertet (nicht die Control-ID). Also du hattest das erste Mal recht :) – sarsnake

+0

@gnomixa-Danke, aber das erste Mal habe ich mich noch geirrt. Ich konnte es nicht genau und präzise erklären, also habe ich einfach Code zusammengeschmolzen, von dem ich dachte, dass er funktionieren würde, aber bis dahin hatte ich den Punkt vergessen! ;-) Aber danke für die Aufwertung trotzdem. –

Verwandte Themen