2009-11-19 2 views
5

Wie kann ich serverseitiges Skript in einer externen js-Datei verwenden, um einen Verweis auf ein dom-Element zu erhalten?Asp.Net-Skript in der externen js-Datei

Die folgenden Funktionen funktionieren wie vorgesehen, wenn sie als Inline-Skript verwendet werden, gibt jedoch null zurück, wenn ich sie in eine externe js-Datei verschiebe.

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

Siehe http://stackoverflow.com/questions/844970/is-there-a-better-way-to-get-clientids-into-external-js-files und http://stackoverflow.com/questions/ 1232465/how-to-use-jquery-Wählen-Element-by-id-und-asp-net-ohne-Putting-ctl00-everyw/1232498 # 1232498 für ein paar allgemeine Lösungen zu diesem Thema. Siehe http://stackoverflow.com/questions/497802/how-to-stop-asp-net-from-changing-ids-in-order-to-use-jquery/497872#497872 für eine jQuery-Lösung. –

Antwort

11

Sie erhalten einen Inline-Skriptblock, der ein JavaScript-Variable erstellt haben müssen. Dieser Block sollte vor Ihrer externen JavaScript-Datei hinzugefügt werden. Sobald Sie dies getan haben, können Sie auf diese Variable in Ihrer externen JavaScript-Datei verweisen.

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

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

Sie können nicht #<%= gridResults.ClientID %> setzen, weil die gridresults.ClientID zu dieser asp.net Seite spezifisch ist.

Sie könnten tun:

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

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

    yourfunction (grid); 

</script> 
0

Was Sie wollen, kann nicht passieren. Die externe JavaScript-Datei wird nicht vom Code der ASP.NET-Seite analysiert, sodass die Funktionalität von ASP.NET nicht zur Verfügung steht.

1

Wenn Sie aber eine eindeutige Klasse im Grid mit der CssClass-Eigenschaft verwenden, sollten Sie in der Lage sein, auf das Grid zuzugreifen, ohne zu wissen, was es clientID ist.

Verwandte Themen