在asp.net中经常会使用javascript弹出一些提示框,前段时间做了一个网站,因为要用到弹出提示框的情况比较多,就自己动手写了这样的一个类。主要包括如下静态方法:Show(),NoticeAndReturn(),NoticeAndReturn(),ConfirmAndReturn()
public class MessageBox
{
private const string SCRIPT = "/n<script language=/"javascript/">/nwindow.alert('{0}');/n</script>";
//
/// <summary>
/// 弹出提示对话框
/// </summary>
/// <param name="currentPage"></param>
/// <param name="message"></param>
public static void Show(System.Web.UI.Page currentPage, string message)
{
currentPage.ClientScript.RegisterStartupScript(currentPage.GetType(), Guid.NewGuid().ToString(), string.Format(SCRIPT, message));
}
private const string _scriptNoticeAndReturn = "alert('{0}');location.href = '{1}'";
//private const string _scriptConfirmAndReturn = "if (confirm('{0}')) window.open('{1}', '_self', true);";
private const string _scriptConfirmAndReturn = "if (confirm('{0}')) location.href = '{1}';";
private const string _scriptNoticeAndReturnRefer = "alert('{0}');window.open(document.referer, '_self');";
//
/// <summary>
/// 提示并返回到指定的页面
/// </summary>
/// <param name="message"></param>
/// <param name="url"></param>
public static void NoticeAndReturn(System.Web.UI.Page currentPage, string message, string url)
{
currentPage.ClientScript.RegisterStartupScript(currentPage.GetType(), "Message", string.Format(_scriptNoticeAndReturn, message, url), true);
}
//
/// <summary>
/// 提示并返回到上一页
/// </summary>
/// <param name="currentPage"></param>
/// <param name="message"></param>
public static void NoticeAndReturn(System.Web.UI.Page currentPage, string message)
{
currentPage.ClientScript.RegisterStartupScript(currentPage.GetType(), "Message1", string.Format(_scriptNoticeAndReturnRefer, message), true);
}
//
/// <summary>
/// 提示是否返回指定的页面
/// </summary>
/// <param name="currentPage"></param>
/// <param name="message"></param>
/// <param name="url"></param>
public static void ConfirmAndReturn(System.Web.UI.Page currentPage, string message, string url)
{
currentPage.ClientScript.RegisterStartupScript(currentPage.GetType(), "Message", string.Format(_scriptConfirmAndReturn, message, url), true);
}
}
具体的使用如: MessageBox.ConfirmAndReturn(this, "修改已成功,单击确定返回到首页", "Default.aspx");
这样把他们包装起来后使用比较方便。但是也存在一个问题:在弹出了提示对话框后,用户返回或刷新,这时,对话框就是再次弹出来。、
这个问题困扰了我很久,抽时间一定将它解决
public class MessageBox
{
private const string SCRIPT = "/n<script language=/"javascript/">/nwindow.alert('{0}');/n</script>";
//
/// <summary>
/// 弹出提示对话框
/// </summary>
/// <param name="currentPage"></param>
/// <param name="message"></param>
public static void Show(System.Web.UI.Page currentPage, string message)
{
currentPage.ClientScript.RegisterStartupScript(currentPage.GetType(), Guid.NewGuid().ToString(), string.Format(SCRIPT, message));
}
private const string _scriptNoticeAndReturn = "alert('{0}');location.href = '{1}'";
//private const string _scriptConfirmAndReturn = "if (confirm('{0}')) window.open('{1}', '_self', true);";
private const string _scriptConfirmAndReturn = "if (confirm('{0}')) location.href = '{1}';";
private const string _scriptNoticeAndReturnRefer = "alert('{0}');window.open(document.referer, '_self');";
//
/// <summary>
/// 提示并返回到指定的页面
/// </summary>
/// <param name="message"></param>
/// <param name="url"></param>
public static void NoticeAndReturn(System.Web.UI.Page currentPage, string message, string url)
{
currentPage.ClientScript.RegisterStartupScript(currentPage.GetType(), "Message", string.Format(_scriptNoticeAndReturn, message, url), true);
}
//
/// <summary>
/// 提示并返回到上一页
/// </summary>
/// <param name="currentPage"></param>
/// <param name="message"></param>
public static void NoticeAndReturn(System.Web.UI.Page currentPage, string message)
{
currentPage.ClientScript.RegisterStartupScript(currentPage.GetType(), "Message1", string.Format(_scriptNoticeAndReturnRefer, message), true);
}
//
/// <summary>
/// 提示是否返回指定的页面
/// </summary>
/// <param name="currentPage"></param>
/// <param name="message"></param>
/// <param name="url"></param>
public static void ConfirmAndReturn(System.Web.UI.Page currentPage, string message, string url)
{
currentPage.ClientScript.RegisterStartupScript(currentPage.GetType(), "Message", string.Format(_scriptConfirmAndReturn, message, url), true);
}
}
具体的使用如: MessageBox.ConfirmAndReturn(this, "修改已成功,单击确定返回到首页", "Default.aspx");
这样把他们包装起来后使用比较方便。但是也存在一个问题:在弹出了提示对话框后,用户返回或刷新,这时,对话框就是再次弹出来。、
这个问题困扰了我很久,抽时间一定将它解决