2010-05-17 41 views
12

Chúc mừng, làm cách nào tôi có thể viết mã JavaScript trong asp.net bằng mã sau khi sử dụng C#. Ví dụ, Tôi có bấm nút sự kiện khi tôi nhấp vào nút Tôi muốn gọi mã kịch bản java này:làm thế nào để viết javascript trong asp.net trong mã phía sau bằng cách sử dụng C#

alert("You pressed Me!"); 

Tôi muốn biết làm thế nào để sử dụng kịch bản java từ mã phía sau.

Cảm ơn bạn;

+0

tôi khuyên bạn nên nhìn vào bằng cách sử dụng thư viện jQuery thay vì tinh khiết Javascript. –

+2

@David. Các nguyên tắc tương tự áp dụng cho cả hai. jQuery chỉ là javascript, sau khi tất cả. – Armstrongest

+2

Thật vậy - nhưng đối với một ai đó bắt đầu trong javascript họ thường sẽ tìm thấy sự phát triển của họ dễ dàng hơn nhiều nếu họ sử dụng jQuery. Chỉ cần lan truyền từ :) –

Trả lời

14

Trên thực tế, đây là những gì bạn cần:

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

Sao chép tất cả các javascript vào chuỗi và sau đó đăng ký nó vào trang aspx của bạn trong code-behind. Sau đó, trong trang aspx, bạn có thể gọi hàm javascript bất cứ khi nào bạn muốn. Bạn nên viết mã này trong phương thức Page_Load trong trang C#.

+0

Cảm ơn, tôi cũng cần tiền tố ScriptManager với System.Web.UI. Tôi đã có System.Web.Extensions được tham chiếu trong dự án VS2013 của tôi. – John

6

Cái gì như:

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

Bạn cũng có thể muốn đọc lên trên điều khiển ScriptManager và khối xuất ra của kịch bản.

6

Câu trả lời đúng thường là "Bạn không". Tốt hơn là xác định mã của bạn trong tệp .js và sử dụng jQuery để kết nối các sự kiện mong muốn.

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

Nếu bạn muốn đăng ký một kịch bản sẽ được sử dụng trong mối liên hệ với một UpdatePanel (AJAX) sử dụng ScriptManager lớp như Sani Huttunen chỉ. Nếu không, bạn nên sử dụng lớp ClientScriptManager (phương pháp Page.ClientScript.RegisterClientScriptBlock hoặc Page.ClientScript.RegisterStartupScript)

Vì người dùng khác chỉ, thường đăng ký tập lệnh trên mã phía sau có thể và nên tránh. Nó không phải là một thực hành rất tốt đẹp và bạn nên làm điều đó chỉ trong trường hợp bạn không có lựa chọn khác.

4

Một cách để đưa một số javascript vào trang sang địa điểm cụ thể thực hiện điều này:

ASP.Net

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

C#

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

Tất nhiên, bạn có thể đặt bất cứ điều gì trong ở đó, và tôi muốn giới thiệu một thư viện javascript.

Sử dụng Trình quản lý tập lệnh cũng là một tùy chọn.

+0

Tôi nghĩ rằng đây là một lựa chọn khi bạn phải làm một cái gì đó thực sự phức tạp, nhưng tôi sẽ không sử dụng nó trong trường hợp này. – bloparod

+0

Cảm ơn, đây là giải pháp tôi đang tìm kiếm. Sử dụng '

2

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

+0

Hãy thử điều này. nó sẽ hoạt động – john

Các vấn đề liên quan