Ich bin ein wenig verwirrt wie/warum Sie Dollarzeichen in der ID sehen.
Wenn eine Web-Steuerung in Markup-Rendering erzeugt ASP.NET, die auf der Eigenschaft der ID
Web Steuerung basierend id
und name
Attribute des Elements und seine Lage in der Steuerungshierarchie. Kurz gesagt, bestimmte Steuerelemente - wie Vorlagensteuerelemente oder Wiederholungssteuerelemente - fungieren als Benennungscontainer. Die Eigenschaftswerte dieser Steuerelemente 'ID
werden den Eigenschaftswerten ihrer inneren Steuerelemente' ID
vorangestellt, wenn die Attribute id
und name
bestimmt werden.
Betrachten wir zum Beispiel die folgende Steuerungshierarchie:
Hier die Master-Seite (ctl00
) und Content (MainContent
) Kontrollen Benennung Container. Das TextBox-Websteuerelement Age
verfügt über die ID id
der clt00_MainContent_Age - namely, its own server-side
ID property value prefixed with the
ID-Werte seiner Benennungscontainer-Vorfahren.
Aber beachten Sie, wie der gerenderte id
jeden Namensbehälter Spot mit einem Unterstrich trennt. Dies ist die Standardfunktionalität von ASP.NET. Daher bin ich ratlos, warum Sie im Attribut id
Dollarzeichen sehen. (Beim Formatieren des Attributs name
trennt ASP.NET die einzelnen Benennungsplätze mit einem Dollarzeichen, aber bei der Formulierung des id
Attributwerts sollte $ nicht verwendet werden.)
Welche Version von ASP.NET verwenden Sie? Machst du irgendetwas ... seltsam? Wie die Verwendung von benutzerdefinierten Steuerelementen und Überschreiben der Basis Control
Klasse IdSeparator
Eigenschaft? Wenn Sie ASP.NET 4 verwenden, setzen Sie (entweder absichtlich oder unabsichtlich) die Eigenschaft ClientIDMode
des Steuerelements?
Go Figur, MS würde alle über die Standards wee. –