ASP.NET - 在类库引用中使用ScriptManager

Mic*_*ade 7 c# asp.net

我想在我的类库项目中添加对ScriptManager的引用而不是ClientScriptManager,是否可能?

Tim*_*ter 10

我假设您不知道如何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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)