Domanda

Sembra che tutti sta facendo questo (nei post di codice, ecc.) ... ma io non so come': (

Ogni volta che provo a manipolare un elemento ASP utilizzando JavaScript ottengo un "elemento è nullo" o "documento è definito", ecc errore .....

javascript funziona bene in genere, ... ma solo quando aggiungo l'attributo runat = "server" non l'elemento sembra invisibile al mio javascript.

qualsiasi suggerimento sarebbe apprezzato

Grazie, Andrew

È stato utile?

Soluzione

Che cosa sta probabilmente accadendo è che il vostro elemento / controllo è all'interno di uno o più controlli ASP.NET, che fungono da contenitori di denominazione (pagina Maestro, ITemplate, Wizard, ecc), e che sta causando il suo ID per cambiare.

È possibile utilizzare "visualizza sorgente" nel browser per confermare che è quello che sta accadendo nel rendering HTML.

Se il tuo JavaScript è nella pagina ASPX, il modo più semplice per aggirare temporaneamente che è quello di utilizzare dell'elemento ClientID proprietà . Ad esempio, se si ha un controllo denominato TextBox1 che si voleva fare riferimento tramite JS:

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

Altri suggerimenti

Fare un elemento runat="server" cambia l'ID del lato client di tale elemento in base a ciò ASP.NET contenitori di denominazione è dentro di. Quindi, se si sta utilizzando document.getElementById per manipolare l'elemento, è necessario passare il nuovo ID generato da .NET. Esaminare la proprietà ClientID per ottenere che ID generato ... è possibile utilizzarlo in linea nel vostro Javascript in questo modo:

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

Se si dispone di una casella di testo:

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

È possibile utilizzare:

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

Ogni WebControl espone la stessa proprietà ClientID.

Tutti se la domanda è stato risposto, ho pensato di postare solo qualche ulteriore info ...

Rick Strahl fornito piuttosto un lavoro di intresting intorno a questo problema.

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

Per fortuna quando ASP .NET 4.0 arriva, vi permetterà di specificare exacly quali saranno le identità dei clienti di!

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top