今天做提示框的时候一直不显示,让我郁闷好久,晚上吃饭的时候问了同事一下,他给了一个思路,
他说可能是因为由于页面中的无闪刷新导致的结果;百度了一下真找到了解决方法
在页面中存在无闪刷新控件的时候提示框不能在用普通的,要特殊的处理一下;
/// <summary> /// 显示提示信息(用于页面中存在无闪刷新控制的提示) /// </summary> /// <param name="controlName">无闪刷新控件名称</param> /// <param name="message">消息内容</param> public static void UserControlMessageShow(Control controlName, string message) { ScriptManager.RegisterClientScriptBlock(controlName, typeof(UpdatePanel), "提示", "alert('" + message + "');", true); } |
普通的提示框:
/// <summary> /// 显示提示信息 /// </summary> /// <param name="page">页面对象</param> /// <param name="msg">消息</param> public static void MessageShow(System.Web.UI.Page page, string message) { if (message == null || message == String.Empty) return; message = ToJsString(message); string js = "<script>alert('" + message + "');</script>"; page.ClientScript.RegisterClientScriptBlock(page.GetType(),"append_message", js); } |
还有另一种“用户控件”的提示框:
1.方法一
/// <summary> /// 显示提示信息 /// </summary> /// <param name="page">页面对象</param> /// <param name="msg">消息</param> public static void UserControlMessageShow(System.Web.UI.UserControl userControl, string message) { if (message == null || message == String.Empty) return; message = ToJsString(message); string js = "<script>alert('" + message + "');</script>"; userControl.Page.ClientScript.RegisterClientScriptBlock(userControl.Page.GetType(), "append_message", js); } |
2.方法二
/// <summary> /// 显示提示信息 /// </summary> /// <param name="page">页面对象</param> /// <param name="msg">消息</param> public static void UserControlMessageShow(System.Web.UI.UserControl userControl, string message, string goPage) { if (message == null || message == String.Empty) return; message = ToJsString(message); StringBuilder sb = new StringBuilder(); sb.Append("<script>"); sb.AppendFormat("alert('{0}');", message); sb.AppendFormat("window.location.href='{0}';", goPage); sb.Append("</script>"); userControl.Page.ClientScript.RegisterClientScriptBlock(userControl.Page.GetType(), "append_message", sb.ToString()); } |