2013-05-08 23 views
0

我想從一個asp.net應用程序中的C#類執行一個JavaScript函數。我正在使用ScriptManager。我有一個類UpdateUI,其中包含以下方法:從一個類調用ScriptManager

public static void RunScript() 
{ 
    try 
    { 
     if (HttpContext.Current != null) 
     { 
      Page currentPage = HttpContext.Current.Handler as System.Web.UI.Page; 
      ScriptManager.RegisterClientScriptBlock(currentPage, currentPage.GetType(), "disableControls", "disableControls()", true); 
     } 
    } 
    catch (Exception ex) 
    { 
    } 
} 

當我從另一個調用靜態類UpdateUI.RunScript(),該HttpContent.Currentnull。任何想法,我應該如何去執行一個沒有代碼隱藏的類的scriptmanager?

+0

從哪裏靜態類調用此方法?在頁面的生命週期中?否則它是'空'(例如,從web方法)。 – 2013-05-08 14:34:38

+0

@TimSchmelter據我所知在WebMethod HttpContext.Current可用。我想我已經這樣做了在WebMethod中獲取會話數據。 – 2013-05-08 16:07:03

+0

@VitorCanova:據我所知'HttpContext.Current.Handler'不是webmethod中的'Page',所以它是'null'。但是,這只是一個例子。他沒有提到在頁面的生命週期中是否使用靜態類。 – 2013-05-08 16:17:38

回答

0

將HttpContext傳遞給靜態類中的方法。正如Tim Schmelter的評論所指出的,如果沒有響應傳入的請求,調用HttpContext.Current將失敗。

public static void RunScript(HttpContext context);