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);
}
}
}