我想在我的类库项目中添加一个对ScriptManager的引用而不是ClientScriptManager,这是否可行?
我假设您不知道如何在类库中引用ScriptManager
,因为通常这些WebControls
不被引用。此外,我认为您还需要知道如何在静态上下文中从类库获取对页面的引用。
要获取ScriptManager
,您需要在类库项目中添加对System.Web.Extensions
的引用。
要在静态上下文中获取对页面的引用,您需要添加System.Web
命名空间,然后以下内容返回当前页面的ScriptManager
:
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
System.Web.UI.ScriptManager.RegisterClientScriptBlock(page, page.GetType, "ScriptKey", "YourScript", True)
。 - Tim Schmelter