2009-11-19 35 views
5

¿Cómo puedo usar el script del lado del servidor en un archivo js externo para obtener una referencia a un elemento dom?Asp.Net script en un archivo js externo

Lo siguiente funciona según lo previsto cuando se utiliza como script en línea, pero devuelve nulo cuando lo muevo a un archivo js externo.

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

Consulte http://stackoverflow.com/questions/844970/is-there-a-better-way-to-get-clientids-into-external-js-files y http://stackoverflow.com/questions/ 1232465/how-to-use-jquery-select-element-by-id-and-asp-net-without-putting-ctl00-everyw/1232498 # 1232498 para un par de soluciones generales para esto. Consulte http://stackoverflow.com/questions/497802/how-to-stop-asp-net-from-changing-ids-in-order-to-use-jquery/497872#497872 para obtener una solución jQuery. –

Respuesta

11

Usted necesita tener un bloque de script en línea que crea una variable de JavaScript. Este bloque debe agregarse antes de su archivo JavaScript externo. Una vez que haga esto, puede hacer referencia a esa variable en su archivo JavaScript externo.

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

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

no se puede poner #<%= gridResults.ClientID %>, debido a que el gridresults.ClientID es específico de esa página asp.net.

que podría hacer:

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

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

    yourfunction (grid); 

</script> 
0

Lo que quiere que suceda no puede. El archivo de JavaScript externo no es analizado por el código de la página ASP.NET, por lo que la funcionalidad de ASP.NET no está disponible para él.

1

Si solo tiene una clase única en la cuadrícula con la propiedad CssClass, debería poder acceder a la cuadrícula sin tener que saber qué es clientID.

Cuestiones relacionadas