2011-08-08 38 views
6

Tôi muốn thêm tham chiếu đến ScriptManager trong dự án thư viện lớp của tôi thay vì ClientScriptManager, có thể không?ASP.NET - Sử dụng ScriptManager trong tham chiếu thư viện lớp

+0

Bạn có thể thuật lại câu hỏi không? Tôi không hiểu vấn đề là gì. ScriptManager thường là một thẻ ASP.NET, không chắc chắn làm thế nào bạn sẽ thêm nó trong một thư viện lớp. – Nate

Trả lời

9

Tôi giả sử rằng bạn không biết cách tham chiếu ScriptManager trong thư viện lớp nơi thông thường các số WebControls này không được tham chiếu. Hơn nữa tôi nghĩ rằng bạn cũng cần phải biết làm thế nào để có được một tham chiếu đến trang trong một bối cảnh tĩnh từ thư viện lớp.

Để nhận số ScriptManager bạn phải thêm tham chiếu đến System.Web.Extensions trong dự án thư viện lớp học của mình.

Để có được một tài liệu tham khảo để trang trong một bối cảnh tĩnh bạn cần phải thêm không gian tên System.Web, sau đó sau trả về ScriptManager của trang hiện tại:

C#:

var http = System.Web.HttpContext.Current; 
if ((http != null)) { 
    var page = http.CurrentHandler as Web.UI.Page; 
    if (page != null) { 
     var scriptManager = System.Web.UI.ScriptManager.GetCurrent(page); 
    } 
} 

VB.NET:

Dim http = Web.HttpContext.Current 
If Not http Is Nothing Then 
    Dim page = TryCast(http.CurrentHandler, Web.UI.Page) 
    If Not page Is Nothing Then 
     Dim scriptManager = System.Web.UI.ScriptManager.GetCurrent(page) 
    End If 
End If 
+0

Ok! cảm ơn! Nhưng tôi có một vấn đề, tôi không thể acess phương pháp RegisterClientScriptBlock theo cách này. Bạn có biết tại sao? –

+0

Phương thức RegisterClientScriptBlock là tĩnh/chia sẻ. Do đó điều này sẽ làm việc: 'System.Web.UI.ScriptManager.RegisterClientScriptBlock (trang, page.GetType," ScriptKey "," YourScript ", True)' –

+0

OK! Cảm ơn nhiều! –

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