Comment puis-je accéder à runat=“server” ASP élément à l'aide de javascript?
Il semble que tout le monde le fait (dans le code des postes etc.)...mais je ne sais comment 🙁
chaque fois que je tente de manipuler un asp élément à l'aide de javascript, je reçois un "élément est null" ou "document n'est pas défini" etc. erreur.....
javascript fonctionne bien généralement,...mais seulement quand j'ajoute le runat="server" attribut de l'élément paraître invisible, à mon javascript.
toutes les suggestions seraient appréciées
Merci, Andrew
OriginalL'auteur Andrew | 2009-03-23
Vous devez vous connecter pour publier un commentaire.
Ce qui est probablement ce qui se passe est que votre/élément de commande est dans un ou plusieurs ASP.NET les contrôles qui agissent comme de nommage des conteneurs (page Maître, ITemplate, Assistant, etc), et qui est à l'origine de ses ID de changer.
Vous pouvez utiliser le bouton "afficher la source" dans votre navigateur pour confirmer que c'est ce qui se passe dans le rendu HTML.
Si votre code JavaScript dans la page ASPX, la façon la plus simple pour contourner temporairement c'est-à -utilisez l'élément de propriété ClientID. Par exemple, si vous avez eu un contrôle nommé TextBox1 que vous avez voulu référence via JS:
si c'est la meilleure réponse, vous devez accepter en tant que telle. Sur de SORTE que la qualité passe avant la vitesse.
ya qu'est ce que je pensais aussi, en fait...va faire.
OriginalL'auteur Dave Ward
Faire un élément
runat="server"
changements du côté client ID de l'élément basé sur ce que ASP.NET nommage des conteneurs à l'intérieur de de. Ainsi, si vous utilisezdocument.getElementById
de manipuler l'élément, vous aurez besoin de passer le nouvel ID généré par .NET. Regardez dans le ClientId propriété afin d'obtenir que l'ID généré...vous pouvez l'utiliser en ligne dans votre code Javascript comme ceci:OriginalL'auteur Matt Winckler
Si vous avez une zone de texte:
Vous pouvez utiliser:
Tout WebControl expose la même propriété ClientID.
OriginalL'auteur Program.X
Tout bien que la question a été posée, la pensée, je voudrais juste poster un peu plus d'info...
Rick Strahl fournit un intéressant travail autour de ce problème.
http://www.west-wind.com/WebLog/posts/252178.aspx
Heureusement, lors de l'ASP .NET 4.0 arrive, il va vous permettre de spécifier exactement ce que le client ID!
http://www.codeproject.com/KB/aspnet/ASP_NET4_0ClientIDFeature.aspx
<%=txtText.ClientID %>
)OriginalL'auteur Sean Taylor