C#實現的客戶端彈出消息框封裝類

pdkie 9年前發布 | 1K 次閱讀 C#

asp.net在服務器端運行,是不能在服務器端彈出對話框的,但是C#可以通過在頁面輸出JS代碼實現彈出消息框的效果,這個C#類封裝了常用的消息框彈出JS代碼,可以在服務器端調用,在客戶端顯示對話框。不但可以顯示JS的警告框,還可以顯示模式窗口,非常方便。

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace DotNet.Utilities { /// <summary> /// 頁面常用方法包裝 /// </summary> public class ShowMessageBox {

    #region 信息顯示

    /// <summary>
    /// 顯示提示信息
    /// </summary>
    /// <param name="message"></param>
    public static void ShowMG(string message)
    {
        WriteScript("alert('" + message + "');");
    }


    /// <summary>
    /// 顯示提示信息
    /// </summary>
    /// <param name="message">提示信息</param>
    public static void ShowMessage(string message)
    {
        ShowMessage("系統提示", 180, 120, message);
    }


    /// <summary>
    /// 顯示提示信息
    /// </summary>
    /// <param name="message">提示信息</param>
    public static void ShowMessage_link(string message, string linkurl)
    {
        ShowMessage_link("系統提示", 180, 120, message, linkurl, 8000, -1);
    }

    /// <summary>
    /// 顯示提示信息
    /// </summary>
    /// <param name="title"></param>
    /// <param name="width"></param>
    /// <param name="height"></param>
    /// <param name="message">提示信息</param>
    private static void ShowMessage(string title, int width, int height, string message)
    {
        ShowMessage(title, width, height, message, 3000, -1);
    }

    /// <summary>
    /// 顯示提示信息
    /// </summary>
    /// <param name="title"></param>
    /// <param name="width"></param>
    /// <param name="height"></param>
    /// <param name="message"></param>
    /// <param name="delayms"></param>
    /// <param name="leftSpace"></param>
    private static void ShowMessage(string title, int width, int height, string message, int delayms, int leftSpace)
    {
        WriteScript(string.Format("popMessage({0},{1},'{2}','{3}',{4},{5});", width, height, title, message, delayms, leftSpace == -1 ? "null" : leftSpace.ToString()));
    }


    /// <summary>
    /// 顯示提示信息
    /// </summary>
    /// <param name="title"></param>
    /// <param name="width"></param>
    /// <param name="height"></param>
    /// <param name="message"></param>
    /// <param name="delayms"></param>
    /// <param name="leftSpace"></param>
    private static void ShowMessage_link(string title, int width, int height, string message, string linkurl, int delayms, int leftSpace)
    {
        WriteScript(string.Format("popMessage2({0},{1},'{2}','{3}','{4}',{5},{6});", width, height, title, message, linkurl, delayms, leftSpace == -1 ? "null" : leftSpace.ToString()));
    }


    #endregion

    #region 顯示異常信息

    /// <summary>
    /// 顯示異常信息
    /// </summary>
    /// <param name="ex"></param>
    public static void ShowExceptionMessage(Exception ex)
    {
        ShowExceptionMessage(ex.Message);
    }

    /// <summary>
    /// 顯示異常信息
    /// </summary>
    /// <param name="message"></param>
    public static void ShowExceptionMessage(string message)
    {
        WriteScript("alert('" + message + "');");
        //PageHelper.ShowExceptionMessage("錯誤提示", 210, 125, message);
    }

    /// <summary>
    /// 顯示異常信息
    /// </summary>
    /// <param name="title"></param>
    /// <param name="width"></param>
    /// <param name="height"></param>
    /// <param name="message"></param>
    private static void ShowExceptionMessage(string title, int width, int height, string message)
    {
        WriteScript(string.Format("setTimeout(\"showAlert('{0}',{1},{2},'{3}')\",100);", title, width, height, message));
    }
    #endregion

    #region 顯示模態窗口

    /// <summary>
    /// 返回把指定鏈接地址顯示模態窗口的腳本
    /// </summary>
    /// <param name="wid"></param>
    /// <param name="title"></param>
    /// <param name="width"></param>
    /// <param name="height"></param>
    /// <param name="url"></param>
    public static string GetShowModalWindowScript(string wid, string title, int width, int height, string url)
    {
        return string.Format("setTimeout(\"showModalWindow('{0}','{1}',{2},{3},'{4}')\",100);", wid, title, width, height, url);
    }

    /// <summary>
    /// 把指定鏈接地址顯示模態窗口
    /// </summary>
    /// <param name="wid">窗口ID</param>
    /// <param name="title">標題</param>
    /// <param name="width">寬度</param>
    /// <param name="height">高度</param>
    /// <param name="url">鏈接地址</param>
    public static void ShowModalWindow(string wid, string title, int width, int height, string url)
    {
        WriteScript(GetShowModalWindowScript(wid, title, width, height, url));
    }

    /// <summary>
    /// 為指定控件綁定前臺腳本:顯示模態窗口
    /// </summary>
    /// <param name="control"></param>
    /// <param name="eventName"></param>
    /// <param name="wid"></param>
    /// <param name="title"></param>
    /// <param name="width"></param>
    /// <param name="height"></param>
    /// <param name="url"></param>
    /// <param name="isScriptEnd"></param>
    public static void ShowCilentModalWindow(string wid, WebControl control, string eventName, string title, int width, int height, string url, bool isScriptEnd)
    {
        string script = isScriptEnd ? "return false;" : "";
        control.Attributes[eventName] = string.Format("showModalWindow('{0}','{1}',{2},{3},'{4}');" + script, wid, title, width, height, url);
    }

    /// <summary>
    /// 為指定控件綁定前臺腳本:顯示模態窗口
    /// </summary>
    /// <param name="cell"></param>
    /// <param name="eventName"></param>
    /// <param name="wid"></param>
    /// <param name="title"></param>
    /// <param name="width"></param>
    /// <param name="height"></param>
    /// <param name="url"></param>
    /// <param name="isScriptEnd"></param>
    public static void ShowCilentModalWindow(string wid, TableCell cell, string eventName, string title, int width, int height, string url, bool isScriptEnd)
    {
        string script = isScriptEnd ? "return false;" : "";
        cell.Attributes[eventName] = string.Format("showModalWindow('{0}','{1}',{2},{3},'{4}');" + script, wid, title, width, height, url);
    }
    #endregion

    #region 顯示客戶端確認窗口
    /// <summary>
    /// 顯示客戶端確認窗口
    /// </summary>
    /// <param name="control"></param>
    /// <param name="eventName"></param>
    /// <param name="message"></param>
    public static void ShowCilentConfirm(WebControl control, string eventName, string message)
    {
        ShowCilentConfirm(control, eventName, "系統提示", 210, 125, message);
    }

    /// <summary>
    /// 顯示客戶端確認窗口
    /// </summary>
    /// <param name="control"></param>
    /// <param name="eventName"></param>
    /// <param name="title"></param>
    /// <param name="width"></param>
    /// <param name="height"></param>
    /// <param name="message"></param>
    public static void ShowCilentConfirm(WebControl control, string eventName, string title, int width, int height, string message)
    {
        control.Attributes[eventName] = string.Format("return showConfirm('{0}',{1},{2},'{3}','{4}');", title, width, height, message, control.ClientID);
    }


    #endregion

    /// <summary>
    /// 寫javascript腳本
    /// </summary>
    /// <param name="script">腳本內容</param>
    public static void WriteScript(string script)
    {
        Page page = GetCurrentPage();

        // NDGridViewScriptFirst(page.Form.Controls, page);

        page.ClientScript.RegisterStartupScript(page.GetType(), System.Guid.NewGuid().ToString(), script, true);

    }

    /// <summary>
    /// 得到當前頁對象實例
    /// </summary>
    /// <returns></returns>
    public static Page GetCurrentPage()
    {
        return (Page)HttpContext.Current.Handler;
    }


}

} </pre>

 本文由用戶 pdkie 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!