Hallo,
wenn ich einem Label, das mit runat="server" versehen ist, eine ID zuweise, funktioniert dies in ASP.NET, aber in JavaScript bleibt die ID nicht erhalten. Wie kann ich einem Control eine ID zuweisen, die so wohl in ASP.NET wie auch in JS funktioniert?
Viele Grüße,
Golo
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden
doch, das geht sehr wohl.
poste mal ein wenig Quellcode.
Achtung! - Hinter dir ist ein dreiköpfiger Affe!
Das Control:
<asp:TextBox ID="RackDetailsName" runat="server" />
Das JavaScript:
document.getElementById("RackDetailsName").value = rack.Name;
Die ID wird zur Laufzeit aber zu ctl00_Content_RackDetailsName.
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden
jo, wenn du es so:
document.getElementById("ctl00_Content_RackDetailsName").value = rack.Name;
schreibst, geht es auch.
bin jetzt allerdings bisschen verwundert, wenn man ein normales Html-Element benutzt und das auf dem Server laufen lässt, kann man es auch mit dem ganz normalen Namen(ID) im JS und ASP.NET ansprechen.
Achtung! - Hinter dir ist ein dreiköpfiger Affe!
Na das ist mir auch klar, nur wer garantiert mir denn, dass in jedem Fall speziell DIESES Präfix von ASP.NET verwendet wird?
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden
Und wo steht das spezifiziert, wie dieses Präfix vergeben wird?
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden
Dafür musst du immer das Property ClientID verwenden, denn das gibt stets die zusammengesetzte ID wider.
😉
Grüsse
Hallo Der Eisbär,
manchmal kann man das auch umgehen, indem man zusätzlich das Attribut 'Name' vergibt, das von ASP.NET zunächst nicht zur Identifikation dient. Aber ASP.NET kann selbstverständlich auch hierauf zugreifen, und JavaScript hat eine eindeutige Identifizierungsmöglichkeit...
Ob das 'Name'-Attribut bei Labels unterstützt wird, kann ich hier nicht aus dem Stehgreif sagen.
Gruß,
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
das Name Attribut ist aber nicht mehr valid!
Achtung! - Hinter dir ist ein dreiköpfiger Affe!
Original von Powerslave
das Name Attribut ist aber nicht mehr valid!
Wo hast Du denn diese Info her?!
😉
Natürlich ist das name-Attribut noch valid. Es soll nur nicht als ID missbraucht werden, was aber gerne getan wird.
Das name-Attr. darf verwendet werden von <form>, <img>, <iframe>, <embed>, <input>, <select>...
Ohne Angabe des name-Attr. würden z. B. keine gesendeten Formulardaten am Server erkannt werden.
Darüberhinaus kann ein- und dasselbe name-Attr. öfter vorkommen, was beim id-Attr. nicht der Fall ist.
Grüsse
Schon, aber nicht bei ASP.NET Elementen so weit ich weiß, ach ich weiß nix 😁
Achtung! - Hinter dir ist ein dreiköpfiger Affe!
Du solltest das name-Attr. bei Websteuerelementen nicht setzen, da ASP.NET das selber vornimmt. Wahrscheinlich kannst Du das auch gar nicht, da ASP.NET es beim Rendern mit seinem eigenen Wert überschreibt.
Im normalen HTML-Kontext kannst Du es aber wie gewohnt verwenden.
Grüsse