.Net中使用无闪刷新控件时提示框不显示
今天做提示框的时候一直不显示,让我郁闷好久,晚上吃饭的时候问了同事一下,他给了一个思路,
他说可能是因为由于页面中的无闪刷新导致的结果;百度了一下真找到了解决方法
在页面中存在无闪刷新控件的时候提示框不能在用普通的,要特殊的处理一下;
/// <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());
}