我已经复制并粘贴此警报级别: http://madskristensen.net/post/JavaScript-AlertShow%28e2809dmessagee2809d%29-from-ASPNET-code-behind.aspx为什么这个UpdatePanel不工作,但不在UpdatePanel中?
它的工作原理除了具有更新面板内的按钮,但它没有显示错误。内部的asp代码被执行,但没有在客户端显示。
我已经复制并粘贴此警报级别: http://madskristensen.net/post/JavaScript-AlertShow%28e2809dmessagee2809d%29-from-ASPNET-code-behind.aspx为什么这个UpdatePanel不工作,但不在UpdatePanel中?
它的工作原理除了具有更新面板内的按钮,但它没有显示错误。内部的asp代码被执行,但没有在客户端显示。
注册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);
}
}
我建议不要使用的UpdatePanel所有,实行编写脚本的Web服务,并通过代理访问它通过asp.net 它将吨神经节省您还有时间让你亲切产生,因为UpdatePanel的是真的马车
好主意,你有一个教程,谢谢。 – user310291 2010-03-29 08:41:50
这很容易,你可以看看http://www.asp.net/ajaxlibrary/HOW%20TO%20Call%20WCF%20Web%20Services.ashx – vittore 2010-03-29 23:41:21
感谢那么后续的问题: http://stackoverflow.com/questions/2533995/how-to-reference-a-scriptmanager-from-httpcontext-current-currenthandler – user310291 2010-03-28 18:26:24
也知道为什么只是因为它在更新面板中,这不起作用? – user310291 2010-03-28 18:26:53
你不需要在你的页面上找到你的脚本管理器控件的实例,'RegisterClientScriptBlock'是'ScriptManager'类的一个静态方法,所以上面的代码可以像 – wsanville 2010-03-28 19:27:47