| 

.NET C# Java Javascript Exception

4
Ich möchte ein Skript in meine ASP.NET Seite einbinden. Das Skript soll beim Klicken eines Buttons aufgerufen werden. Wie funktioniert das Einbinden?

Lösung: <script src = "~/MeinSkript.js" type = "text/javascript" />
Der Button-Event sieht dann folgendermaßen aus:
<asp:Button ID="Button1" Runat="server"
OnClientClick="MyFunktion('Test')"/>
29.12.2011
arnapsui 11 1
1 Antwort
0
Du hast zwar schon eine Lösung genannt, und das ist in dem Fall sicher auch die eleganteste Lösung, aber es kann ja vorkommen, dass man variable Control-ID's in einer JS-Funktion benötigt... zum Beispiel für getElementById()
Dafür kann man dann den Scriptmanager verwenden, ein entsprechender Code könnte so aussehen:
string script = "function doSomethingWithThis(){" + CRLF
+ "var tmpObj = document.getElementById(" + this.UniqueID + ");" + CRLF
+ "andereFunktionDieWirklichWasMacht(tmpObj);" + CRLF + CRLF;
ScriptManager.RegisterClientScriptBlock(this, typeof(UpdatePanel),
"js_doSomethingWithThis", script, true);
Woher dann die andereFunktionDieWirklichWasMacht kommt, ist wieder ne andere Sache... die könnte zum Beispiel auch in der externen Datei stehen.

Apropro externe JS-Datei. Diese kann man ebenfalls anders einbinden ... dafür muss man nur die Dateien als eingebettete Ressource in das Projekt packen :
string scriptLocation = Page.ClientScript.GetWebResourceUrl(this.GetType(),
"<NameSpace>.ScriptFile.js");
Page.ClientScript.RegisterClientScriptInclude("<NameSpace>.ScriptFile.js",
scriptLocation);

Hierbei steht <NameSpace> natürlich für den Projekt-Namespace, dieser ist entsprechend einzutragen.
Ebenfalls ist darauf zu achten, dass bei dem ermitteln der "scriptLocation" der 2. Parameter angepasst werden muss, wenn sich die Datei in einem Unterordner im Projekt befinden:
<NameSpace>.<UnterordnerName>.ScriptFile.js


(Hinweis: Code wurde aus bestehendem Projekt kopiert und abgewandelt, es könnten sich dabei Fehler eingeschlichen haben)
03.01.2012
Karill Endusa 781 8

Stelle deine .net-Frage jetzt!