在使用asp.net ajax过程中可能会遇到这样的问题:就是想用js脚本输出一些提示,可是不管是用 Page.RegisterClientScriptBlock还是用 Page.RegisterStartupScript注册,该死的提示信息总是不出来。其实不是不出来,只是我们叫错了它们的名字,我们只要用下面的这条语句:
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "alert('提示信息')", true);
就可以正常的弹出alert对话框了。
注:如果在页面中有多个UpdatePanel,如果每个UpdatePanel的UpdateMode都是“always”[默认值]的话,
那么你使用那个UpdatePanel的实例作为参数都可以;如果每个UpdaePanel的UpdateMode=conditional,
那么你必须使用正在更新的那个UpdatePanel作为参数,这样脚本才能起作用。
如果要进行弹出对话框的同时进行页面的跳转,即重定向,可以使用下面的方法:
/// <summary> /// .net弹出Web对话框并跳转 /// 显示消息提示对话框,并进行页面跳转 /// </summary> /// <param name="page">当前页面指针,一般为this</param> /// <param name="msg">提示信息</param> /// <param name="url">跳转的目标URL</param> public static void ShowAndRedirect(System.Web.UI.Page page, string msg, string url) { StringBuilder Builder = new StringBuilder(); Builder.Append("<script language='javascript' defer>"); Builder.AppendFormat("alert('{0}');", msg); Builder.AppendFormat("top.location.href='{0}'", url); Builder.Append("</script>"); page.ClientScript.RegisterStartupScript(page.GetType(), "message", Builder.ToString()); }
采用如下方式调用,例如:
ShowAndRedirect(this, "您的消息", "../Default.aspx");