//如果是单独放在一个类中,记得要引用System.Web.Extensions,否则 ScriptManager不能用
/******************************************************
* Author: 肖煕金
* Description:在后台注册JavaScript脚本弹出信息对话框及确认对话框
* Date: 2008-12-27
* 注意: 当前的代码傪适合於在asp.net 2.0,并且安装了AJAX Extensions 1.0的环境中使用
* 因为当前的类引用了System.Web.Extensions这个ajax命名空间
*******************************************************/
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.UI;
///在后台注册JavaScript脚本弹出信息对话框及确认对话框(需要有MS AJAX环境)
namespace ScriptAlert
{
/// <summary>
/// 在后台注册JavaScript脚本弹出信息对话框及确认对话框(需要有MS AJAX环境)
/// </summary>
public class Script
{
/// <summary>
/// 在后台注册JavaScript脚本弹出信息对话框及确认对话框(需要有MS AJAX环境)
/// </summary>
public Script() { }
/// <summary>
/// Javascript方式弹出消息对话框
/// </summary>
/// <param name="message">要弹出的消息内容</param>
/// <param name="page">当前页面,参数可以直接写:this 或 Page</param>
public static void Alert(string message, Page page)
{
page.ClientScript.RegisterStartupScript(page.GetType(), null, "alert('" + message + "');", true);
}
/// <summary>
/// 向页面注册javascript脚本,这种方式是很灵活的,可以在页面上注册任何你想要的js脚本
/// </summary>
/// <param name="scriptContent">Javascript脚本的内容,记得不要在脚本两端加script标志,script标志程序会自动生成</param>
/// <param name="page">当前页面,参数可以直接写:this 或 Page</param>
public static void RegisterScript(string scriptContent, Page page)
{
page.ClientScript.RegisterStartupScript(page.GetType(), null, scriptContent, true);
}
/// <summary>
/// javascript弹出消息后,跳转到指定的URL链接页面
/// </summary>
/// <param name="message">要弹出的消息内容</param>
/// <param name="pageUrl">要跳转到的页面链接,站内链接请填写相对路径,站外的链接需要加上"http://",如"http://www.baidu.com"</param>
/// <param name="page">当前页面,参数可以直接写:this 或 Page</param>
public static void AlertAndGotoUrl(string message, string pageUrl, Page page)
{
string strScript = "alert('" + message + "');window.location.href='" + pageUrl + "';";
page.ClientScript.RegisterStartupScript(page.GetType(), null, strScript, true);
}
/// <summary>
/// 利用Ajax的方式弹出消息对话框,这种方式主要用於在用户控件和UpdatePanel控件中使用,在页面中也可以使用
/// </summary>
/// <param name="message">要弹出的消息内容</param>
/// <param name="controlId">控件的ID属性名称,用户控件和页面中参数为:this,UpdatePanel控件中参数为当前UpdatePanel控件的ID属性名称</param>
public static void AjaxAlert(string message, Control controlId)
{
ScriptManager.RegisterStartupScript(controlId, controlId.GetType(), null, "alert('" + message + "');", true);
}
/// <summary>
/// 利用Ajax的方式向控件(用户控件和UpdatePanel)或页面注册Javascript脚本,这种方式主要用於在用户控件和UpdatePanel控件中使用,在页面中也可以使用
/// </summary>
/// <param name="scriptContent">Javascript脚本的内容,记得不要在脚本两端加script标志,script标志程序会自动生成</param>
/// <param name="controlId">控件的ID属性名称,用户控件和页面中参数为:this,UpdatePanel控件中参数为当前UpdatePanel控件的ID属性名称</param>
public static void AjaxRegisterScript(string scriptContent, Control controlId)
{
ScriptManager.RegisterStartupScript(controlId, controlId.GetType(), null, scriptContent, true);
}
/// <summary>
///利用Ajax的方式弹出消息对话框后,跳转到指定的URL链接页面,这种方式主要用於在用户控件和UpdatePanel控件中使用,在页面中也可以使用
/// </summary>
/// <param name="message">要弹出的消息内容</param>
/// <param name="pageUrl">要跳转到的页面链接,站内链接请填写相对路径,站外的链接需要加上"http://",如"http://www.baidu.com"</param>
/// <param name="controlId">控件的ID属性名称,用户控件和页面中参数为:this,UpdatePanel控件中参数为当前UpdatePanel控件的ID属性名称</param>
public static void AjaxAlertAndGotoUrl(string message, string pageUrl, Control controlId)
{
string strScript = "alert('" + message + "');window.location.href='" + pageUrl + "';";
ScriptManager.RegisterStartupScript(controlId, controlId.GetType(), null, strScript, true);
}
/// <summary>
/// Javascript弹出确认对话框后,并跳转到指定的URL链接页面
/// </summary>
/// <param name="message">要弹出的消息内容</param>
/// <param name="okGotoUrl">选择确认(OK)按钮后要跳转到的页面URL,站内链接写相对路径,站外链接需加"http://"</param>
/// <param name="cancelGotoUrl">选择取消(Cancel)按钮后要跳转到的页面URL,如果参数为Null或空字符""则返回false(不跳转),站内链接写相对路径,站外链接需加"http://"</param>
/// <param name="page">当前页面,参数可以直接写:this 或 Page</param>
public static void ConfirmAndGotoUrl(string message, string okGotoUrl, string cancelGotoUrl, Page page)
{
string strScript = "";
if (String.IsNullOrEmpty(cancelGotoUrl))
{
strScript = "if(confirm('" + message + "')==true){window.location.href='" + okGotoUrl + "';} else {return false;}";
}
else
{
strScript = "if(confirm('" + message + "')==true){window.location.href='" + okGotoUrl + "';} else{window.location.href='" + cancelGotoUrl + "';}";
}
page.ClientScript.RegisterStartupScript(page.GetType(), null, strScript, true);
}
/// <summary>
/// Javascript弹出确认对话框后,并执行指定的Javascript脚本
/// </summary>
/// <param name="message">要弹出的消息内容</param>
/// <param name="okToScript">选择确认(OK)按钮后要执行的javacript脚本内容</param>
/// <param name="cancelToScript">选择取消(Cancel)按钮后要执行的javacript脚本内容,如果参数为Null或空字符""则返回false</param>
/// <param name="page">当前页面,参数可以直接写:this 或 Page</param>
public static void ConfirmAndExecuteScript(string message, string okToScript, string cancelToScript, Page page)
{
string strScript = "";
if (String.IsNullOrEmpty(cancelToScript))
{
strScript = "if(confirm('" + message + "')==true){"+okToScript+"} else{return false;}";
}
else
{
strScript = "if(confirm('" + message + "')==true){" + okToScript + "} else{" + cancelToScript + "}";
}
page.ClientScript.RegisterStartupScript(page.GetType(), null, strScript, true);
}
/// <summary>
/// 利用Ajax方式弹出确认对话框后,并跳转到指定的URL链接页面,适合於控件(用户控件和UpdatePanel控件中)和页面中
/// </summary>
/// <param name="message">要弹出的消息内容</param>
/// <param name="okGotoUrl">选择确认(OK)按钮后要跳转到的页面URL,站内链接写相对路径,站外链接需加"http://"</param>
/// <param name="cancelGotoUrl">选择取消(Cancel)按钮后要跳转到的页面URL,如果参数为Null或空字符""则返回false(不跳转),站内链接写相对路径,站外链接需加"http://"</param>
/// <param name="controlId">控件的ID属性名称,用户控件和页面中参数为:this,UpdatePanel控件中参数为当前UpdatePanel控件的ID属性名称</param>
public static void AjaxConfirmAndGotoUrl(string message, string okGotoUrl, string cancelGotoUrl, Control controlId)
{
string strScript = "";
if (String.IsNullOrEmpty(cancelGotoUrl))
{
strScript = "if(confirm('" + message + "')==true){window.location.href='" + okGotoUrl + "';} else {return false;}";
}
else
{
strScript = "if(confirm('" + message + "')==true){window.location.href='" + okGotoUrl + "';} else{window.location.href='" + cancelGotoUrl + "';}";
}
ScriptManager.RegisterStartupScript(controlId, controlId.GetType(), null, strScript, true);
}
/// <summary>
/// 利用Ajax方式弹出确认对话框后并执行指定的Javascript脚本
/// </summary>
/// <param name="message">要弹出的消息内容</param>
/// <param name="okToScript">选择确认(OK)按钮后要执行的javacript脚本内容</param>
/// <param name="cancelToScript">选择取消(Cancel)按钮后要执行的javacript脚本内容,如果参数为Null或空字符""则返回false</param>
/// <param name="controlId">控件的ID属性名称,用户控件和页面中参数为:this,UpdatePanel控件中参数为当前UpdatePanel控件的ID属性名称</param>
public static void AjaxConfirmAndExecuteScript(string message, string okToScript, string cancelToScript, Control controlId)
{
string strScript = "";
if (String.IsNullOrEmpty(cancelToScript))
{
strScript = "if(confirm('" + message + "')==true){" + okToScript + "} else{return false;}";
}
else
{
strScript = "if(confirm('" + message + "')==true){" + okToScript + "} else{" + cancelToScript + "}";
}
ScriptManager.RegisterStartupScript(controlId, controlId.GetType(), null, strScript, true);
}
}
}