Wie kann ich mit Javascript auf das ASP-Element runat="server" zugreifen?

7

Es sieht so aus, als ob jeder das macht (in Codeposts etc.) ... aber ich weiß nicht wie: (

Immer, wenn ich versuche, ein ASP-Element mit Javascript zu manipulieren, bekomme ich ein "Element ist Null" oder "Dokument ist undefiniert" usw. Fehler .....

Javascript funktioniert in der Regel gut, ... aber nur wenn ich das Attribut runat="server" hinzufüge, scheint das Element für mein Javascript unsichtbar zu sein.

irgendwelche Vorschläge würden geschätzt werden

Danke, Andrew

    
Andrew 23.03.2009, 20:19
quelle

4 Antworten

24

Wahrscheinlich ist Ihr Element / Steuerelement in einem oder mehreren ASP.NET-Steuerelementen enthalten, die als Benennungscontainer fungieren (Masterseite, ITemplate, Wizard usw.), wodurch sich seine ID ändert.

Sie können "Quelle anzeigen" in Ihrem Browser verwenden, um zu bestätigen, was im gerenderten HTML passiert.

Wenn sich Ihr JavaScript auf der ASPX-Seite befindet, können Sie dies am einfachsten unter Verwenden Sie die ClientID-Eigenschaft des Elements . Wenn Sie beispielsweise ein Steuerelement namens TextBox1 hatten, das Sie über JS referenzieren wollten:

%Vor%     
Dave Ward 23.03.2009, 20:24
quelle
2

Wenn Sie ein Element runat="server" setzen, ändert sich die clientseitige ID dieses Elements basierend auf den darin enthaltenen ASP.NET-Namenscontainern. Wenn Sie also document.getElementById verwenden, um das Element zu bearbeiten, müssen Sie ihm die von .NET generierte neue ID übergeben. Sehen Sie sich die ClientId -Eigenschaft an um diese generierte ID zu bekommen ... kannst du sie in deinem Javascript wie folgt verwenden:

%Vor%     
Matt Winckler 23.03.2009 20:24
quelle
2

Wenn Sie ein Textfeld haben:

%Vor%

Sie können Folgendes verwenden:

%Vor%

Jedes WebControl stellt die gleiche ClientID-Eigenschaft zur Verfügung.

    
Program.X 23.03.2009 20:23
quelle
1

Obwohl die Frage beantwortet wurde, dachte ich, ich würde einfach weitere Informationen posten ...

Rick Strahl lieferte eine interessante Arbeit.

Ссылка

Zum Glück, wenn ASP .NET 4.0 ankommt, können Sie genau angeben, was die Client-ID sein wird!

Ссылка

    
Sean Taylor 23.03.2009 22:37
quelle

Tags und Links