2011-08-08 9 views

答えて

9

通常、WebControlsが参照されていないクラスライブラリでScriptManagerを参照する方法がわからないとします。さらに、私はクラス・ライブラリーから静的コンテキストでページへの参照を取得する方法も知っておく必要があると思います。

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 
+0

ありがとう!しかし、私は問題がある、私はこの方法でRegisterClientScriptBlockメソッドにアクセスできません。なぜなのかご存知ですか? –

+0

RegisterClientScriptBlockメソッドは静的/共有です。したがって、これは動作します: 'System.Web.UI.ScriptManager.RegisterClientScriptBlock(page、page.GetType、" ScriptKey "、" YourScript "、True)' –

+0

OK!どうもありがとうございました! –

関連する問題