2010-05-17 17 views
12

Grüße, Wie kann ich JavaScript-Code in asp.net in Code hinter C# schreiben. Zum Beispiel Ich habe Schaltfläche Ereignis klicken, wenn ich den Knopf ich dieses Java-Script-Code aufrufen möchten, klicken:Wie schreibe ich Javascript in asp.net in Code hinter C#

alert("You pressed Me!"); 

Ich möchte wissen, wie hinter von Code Java-Skript zu verwenden.

Danke;

+0

ich in mit den jQuery Bibliotheken anstelle von reinem Javascript suchen empfehlen würde. –

+2

@David. Die gleichen Prinzipien gelten für beide. jQuery ist schließlich nur Javascript. – Armstrongest

+2

In der Tat - aber für jemanden, der mit JavaScript anfängt, werden sie ihre Entwicklung oft viel einfacher finden, wenn sie jQuery verwenden. Verbreite einfach das Wort :) –

Antwort

14

Eigentlich ist es das, was Sie brauchen:

string myScriptValue = "function callMe() {alert('You pressed Me!'); }"; 
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "myScriptName", myScriptValue, true); 

Kopieren Sie alle Javascript in String und registrieren sie dann in Ihre aspx Seite in Code-behind. Dann in aspx Seite können Sie die JavaScript-Funktion aufrufen, wann immer Sie möchten. Sie sollten diesen Code in der Page_Load-Methode in der C# -Seite schreiben.

+0

Danke, ich musste ScriptManager auch mit System.Web.UI voranstellen. Ich hatte bereits System.Web.Extensions in meinem VS2013-Projekt referenziert. – John

6

Etwas wie:

btnSomething.ClientClick = "alert('You pressed me!');"; 

Vielleicht wollen Sie auch auf den Scriptmanager-Steuerelement lesen, und zum Ausgeben von Blöcken von Skript.

6

Die richtigen Antworten sind normalerweise "Sie nicht". Es ist besser, den Code in einer .js-Datei zu definieren und jQuery zu verwenden, um die gewünschten Ereignisse zu verknüpfen.

$(document).ready(function() { 
$('#myBtn').click(function() { 
    alert('Handler for .click() called.'); 
});}; 
3

Wenn Sie ein Skript registrieren, die mit einem UpdatePanel (AJAX) verwenden ScriptManager Klasse in Verbindung verwendet werden, wie Sani Huttunen hingewiesen. Andernfalls sollten Sie die Klasse ClientScriptManager (Methoden Page.ClientScript.RegisterClientScriptBlock oder Page.ClientScript.RegisterStartupScript)

Als andere Benutzer darauf, in der Regel verwenden, um ein Skript auf den Code hinter kann die Registrierung und sollte vermieden werden. Es ist keine sehr nette Übung, und Sie sollten es nur tun, wenn Sie keine andere Möglichkeit haben.

4

Eine Möglichkeit, einige Javascript auf der Seite in einem bestimmten Ort zu setzen dies tun:

ASP.Net

<script type="text/javascript"> 
<asp:Literal id="litScript" runat="server" /> 
</script> 

C#

litScript.Text = "alert("Hello!");" 

Natürlich können Sie alles setzen in dort, und ich würde eine Javascript-Bibliothek empfehlen.

Die Verwendung des Scriptmanagers ist ebenfalls eine Option.

+0

Ich denke, das ist eine Option, wenn Sie etwas wirklich kniffliges tun müssen, aber ich würde es in diesem Fall nicht verwenden. – bloparod

+0

Danke, das ist die Lösung, nach der ich gesucht habe. Wenn '

2

Response.Write("<script language='javascript'>alert('You pressed Me!');</script>");

+0

Versuchen Sie dies. es wird Arbeit sein – john

Verwandte Themen