2011-08-08 11 views

risposta

9

Presumo che non si sappia come fare riferimento allo ScriptManager in una libreria di classi in cui normalmente non si fa riferimento a questi WebControls. Inoltre, penso che devi anche sapere come ottenere un riferimento alla pagina in un contesto statico dalla libreria di classi.

Per ottenere ScriptManager è necessario aggiungere un riferimento a System.Web.Extensions nel progetto della libreria di classi.

per ottenere un riferimento alla pagina in un contesto statico è necessario aggiungere lo spazio dei nomi System.Web, seguendo poi restituisce il ScriptManager della pagina corrente:

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! Grazie! Ma ho un problema, non posso accedere al metodo RegisterClientScriptBlock in questo modo. Sai perché? –

+0

Il metodo RegisterClientScriptBlock è statico/condiviso. Quindi funzionerà: 'System.Web.UI.ScriptManager.RegisterClientScriptBlock (pagina, pagina.GetType," ScriptKey "," YourScript ", True)' –

+0

OK! Grazie mille! –

Problemi correlati