在使用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");