2009-11-19 8 views
5

Comment puis-je utiliser un script côté serveur dans un fichier js externe pour saisir une référence à un élément dom? Ce qui suit fonctionne comme prévu lorsqu'il est utilisé en tant que script inline, mais renvoie null lorsque je déplace ce fichier vers un fichier js externe.Script Asp.Net dans un fichier js externe

$("#<%= gridResults.ClientID %>"); 
+3

Voir http://stackoverflow.com/questions/844970/is-there-a-better-way-to-get-clientids-into-external-js-files et http://stackoverflow.com/questions/ 1232465/comment-utiliser-jquery-select-element-par-id-et-asp-net-sans-mettre-ctl00-everyw/1232498 # 1232498 pour quelques solutions générales à cela. Voir http://stackoverflow.com/questions/497802/how-to-stop-asp-net-from-changing-ids-in-order-to-use-jquery/497872#497872 pour une solution jQuery. –

Répondre

11

Vous aurez besoin d'avoir un bloc de script en ligne qui crée une variable JavaScript. Ce bloc doit être ajouté avant votre fichier JavaScript externe. Une fois que vous faites cela, vous pouvez référencer cette variable dans votre fichier JavaScript externe.

<script type="text/javascript"> 
    var grid = $("#<%= gridResults.ClientID %>"); 
</script> 

<script type="text/javascript" src="path/to/my.js"></script> 
1

Vous ne pouvez pas mettre #<%= gridResults.ClientID %>, parce que le gridresults.ClientID est spécifique à cette page asp.net.

Vous pouvez faire:

<stript src="yourfile" type="text/javascript"> <!--link to external js file--> 

<script type="text/javascript"> 
    var grid = $("#<%= gridResults.ClientID %>"); 

    yourfunction (grid); 

</script> 
0

Ce que vous voulez arriver ne peut pas. Le fichier javascript externe n'est pas analysé par le code de la page ASP.NET, donc la fonctionnalité de ASP.NET n'est pas disponible.

1

Si vous n'utilisez qu'une classe unique sur la grille à l'aide de la propriété CssClass, vous devriez pouvoir accéder à la grille sans avoir à connaître son identifiant clientID.

Questions connexes