2010-03-28 96 views

回答

1

注册Javascript与ScriptManager.RegisterClientScriptBlock而不是page.ClientScript.RegisterClientScriptBlock将负责在部分页面更新期间注册脚本。下面是修改后的代码:

public static void Show(string message) 
{ 
    // Cleans the message to allow single quotation marks 
    string cleanMessage = message.Replace("'", "\\'"); 
    string script = "<script type=\"text/javascript\">alert('" + cleanMessage + "');</script>"; 

    // Gets the executing web page 
    Page page = HttpContext.Current.CurrentHandler as Page; 

    if (page != null) 
    { 
     ScriptManager.RegisterClientScriptBlock(page, typeof(Alert), "alert", script, false); 
    } 

} 
+0

感谢那么后续的问题: http://stackoverflow.com/questions/2533995/how-to-reference-a-scriptmanager-from-httpcontext-current-currenthandler – user310291 2010-03-28 18:26:24

+0

也知道为什么只是因为它在更新面板中,这不起作用? – user310291 2010-03-28 18:26:53

+0

你不需要在你的页面上找到你的脚本管理器控件的实例,'RegisterClientScriptBlock'是'ScriptManager'类的一个静态方法,所以上面的代码可以像 – wsanville 2010-03-28 19:27:47

1

我建议不要使用的UpdatePanel所有,实行编写脚本的Web服务,并通过代理访问它通过asp.net 它将吨神经节省您还有时间让你亲切产生,因为UpdatePanel的是真的马车

+0

好主意,你有一个教程,谢谢。 – user310291 2010-03-29 08:41:50

+0

这很容易,你可以看看http://www.asp.net/ajaxlibrary/HOW%20TO%20Call%20WCF%20Web%20Services.ashx – vittore 2010-03-29 23:41:21

相关问题