Frage

Es scheint, jeder ist dies zu tun (in Code-Beiträge etc.) ... aber ich dont‘wissen, wie: (

, wenn ich versuche, ein Asp Element zu manipulieren, mit Hilfe von Javascript i bekommen ein "Element null" oder "Dokument ist nicht definiert", etc. Fehler .....

javascript in der Regel gut funktioniert, ... aber nur, wenn ich die runat = „server“ Attribut hinzufügen wird das Element scheint unsichtbar mein Javascript.

irgendwelche Vorschläge wäre willkommen

Danke, Andrew

War es hilfreich?

Lösung

Was wohl passiert, ist, dass Ihr Element / Kontrolle ist innerhalb eines oder mehrere ASP.NET-Steuerelemente, die als Namenscontainer (Master-Seite, ITemplate, Assistent, etc.) handeln, und das verursacht die ID zu ändern.

Sie können „Quelltext anzeigen“ in Ihrem Browser verwenden, um zu bestätigen, dass das, was in der gerenderten HTML passiert.

Wenn Sie JavaScript in der ASPX-Seite ist, der einfachste Weg, um vorübergehend die Arbeit ist auf verwenden Sie die ClientID-Eigenschaft des Elements. Zum Beispiel hatten, wenn Sie ein Steuerelement mit dem Namen TextBox1, die Sie über JS verweisen wollten:

var textbox = document.getElementById('<%= TextBox1.ClientID %>');

Andere Tipps

ein Element runat="server" machen ändert die clientseitige ID dieses Element auf, was Container ASP.NET Namensgebung ist es innerhalb von. Also, wenn Sie document.getElementById verwenden, das Element zu manipulieren, müssen Sie es die neue ID von .NET erzeugt passieren. Schauen Sie in die ClientId Eigenschaft, dass die erzeugte ID zu bekommen ... Sie können es verwenden, inline in Ihrem Javascript in etwa so:

var element = document.getElementById('<%=myControl.ClientID%>');

Wenn Sie eine Textbox:

<asp:TextBox id="txtText" runat="server" />

Sie verwenden können:

var textBox=document.getElementById('<%=txtText.ClientID %>');

Jede WebControl macht die gleiche ClientID-Eigenschaft.

Alle obwohl die Frage beantwortet wurde, dachte, ich würde nur ein paar weiteren Informationen veröffentlichen ...

Rick Strahl bot eine ganz intresting Arbeit um für dieses Problem.

http://www.west-wind.com/WebLog/posts /252178.aspx

Zum Glück, wenn ASP .NET 4.0 kommt, es erlaubt Ihnen, exacly angeben, welche die Client-IDs sein!

http://www.codeproject.com/KB/aspnet/ASP_NET4_0ClientIDFeature.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top