PageBase.cs

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text.RegularExpressions;
using System.Text;
using System.Net;

/// <summary>
/// common 公共方法
/// 2009-9-25 14:54:30
/// </summary>
public class PageBase : System.Web.UI.Page
{
    public PageBase()
    {

    }
    /// <summary>
    /// ViewState ID
    /// </summary>
    public string vsId
    {
        get
        {
            if (EnableViewState)
            {
                object obj = ViewState["vsId"];
                if (obj != null)
                    return (string)obj;
                else
                    return string.Empty;
            }
            else
                return string.Empty;
        }
        set
        {
            if (EnableViewState)
            {
                ViewState["vsId"] = value;
            }
        }
    }

    #region Alert提示信息

    /// <summary>
    /// 給出系統提示信息
    /// </summary>
    /// <param name="vErrorMessage"></param>
    /// <returns></returns>
    public string ShowSystemTip(string vErrorMessage)
    {
        StringBuilder ErrorMessage = new StringBuilder();
        ErrorMessage.Length = 0;
        ErrorMessage.Append("<div style=/"padding:20px;width:200px;height:150px/"><div class=/"x-box-blue/"><div class=/"x-box-tl/"><div class=/"x-box-tr/"><div class=/"x-box-tc/"></div></div></div>");
        ErrorMessage.Append("<div class=/"x-box-ml/"><div class=/"x-box-mr/"><div class=/"x-box-mc/">");
        ErrorMessage.Append("<h3>System Message</h3><div style='height:100px;text-align:center;vertical-align: middle;line-height:40px'><font color=#FF0000 size=4 nowrap>" + vErrorMessage + "</font></div>");
        ErrorMessage.Append(" </div></div></div>");
        ErrorMessage.Append(" <div class=/"x-box-bl/"><div class=/"x-box-br/">");
        ErrorMessage.Append(" <div class=/"x-box-bc/"></div></div></div>");
        ErrorMessage.Append(" </div></div>");
        return ErrorMessage.ToString();
    }

    /// <summary>
    /// 仅提示信息
    /// </summary>
    /// <param name="page">当前页面指针,一般为this</param>
    /// <param name="msg">提示信息</param>
    public void Alert(System.Web.UI.Page page, string msg)
    {
        page.ClientScript.RegisterStartupScript(page.GetType(), "", "alert('" + msg + "');", true);
    }

    /// <summary>
    /// 提示并返回
    /// </summary>
    /// <param name="page">当前页面指针,一般为this</param>
    /// <param name="msg">提示信息</param>
    public void AlertAndBack(System.Web.UI.Page page, string msg)
    {
        page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('" + msg + "'); history.back() ", true);
    }

    /// <summary>
    /// 提示并跳转
    /// </summary>
    /// <param name="page">当前页面指针,一般为this</param>
    /// <param name="msg">提示信息</param>
    /// <param name="url">跳转地址</param>
    public void AlertRedirectUrl(System.Web.UI.Page page, string msg, string url)
    {
        page.ClientScript.RegisterStartupScript(page.GetType(), "", "alert('" + msg + "'); window.parent.location.href='" + url + "'", true);
    }

    /// <summary>
    /// 控件点击 消息确认提示框
    /// </summary>
    /// <param name="page">当前页面指针,一般为this</param>
    /// <param name="msg">提示信息</param>
    public void AlertConfirm(System.Web.UI.WebControls.WebControl Control, string msg)
    {
        Control.Attributes.Add("onclick", "return confirm('" + msg + "');");
    }

    /// <summary>
    /// 消息确认提示框
    /// </summary>
    /// <param name="page">当前页面指针,一般为this</param>
    /// <param name="msg">提示信息</param>
    /// <param name="yesUrl">点“是”的跳转路径</param>
    /// <param name="noUrl">点“否”的跳转路径</param>
    public void AlertConfirm(System.Web.UI.Page page, string msg, string yesUrl, string noUrl)
    {
        page.ClientScript.RegisterClientScriptBlock(this.GetType(), "提示信息",
                   " if( window.confirm('" + msg + "'))"
                    + " { window.location.href='" + yesUrl + "' } "
                    + " else {  window.location.href='" + noUrl + "' } "
               , true);
    }

    /// <summary>
    /// 输出自定义脚本信息
    /// </summary>
    /// <param name="page">当前页面指针,一般为this</param>
    /// <param name="script">输出脚本</param>
    public static void ResponseScript(System.Web.UI.Page page, string script)
    {
        page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript' defer>" + script + "</script>");
    }

    #endregion

    #region 字符串处理

    /// <summary>
    ///  加密字符,防止敏感信息外泄.
    /// </summary>
    /// <param name="str">加密字符串</param>
    /// <returns></returns>
    public string StringEncodeBase(string str)
    {
        string strResult = "";
        if (str != "" && str != null)
        {
            strResult = Convert.ToBase64String(System.Text.ASCIIEncoding.Default.GetBytes(str));
        }
        return strResult;
    }

    /// <summary>
    /// 解密字符,防止敏感信息外泄.
    /// </summary>
    /// <param name="s">解密字符串</param>
    /// <returns></returns>
    public string StringDecodeBase(string str)
    {
        string strResult = "";
        if (str != "" && str != null)
        {
            strResult = System.Text.ASCIIEncoding.Default.GetString(Convert.FromBase64String(str));
        }
        return strResult;
    }

    /// <summary>
    /// 字符串截取方法
    /// </summary>
    /// <param name="len">大于len长度时截取</param>
    /// <param name="str">截取str字符串</param>
    /// <returns></returns>
    public string StringFormat(int len, string str)
    {
        return (str.Length > len) ? str.Substring(0, len) + " ..." : str;
    }

    /// <summary>
    /// 字符串截取方法
    /// </summary>
    /// <param name="len">大于len长度时截取</param>
    /// <param name="num">截取num长</param>
    /// <param name="str">截取str字符串</param>
    /// <returns></returns>
    public string StringFormat(int len, int num, string str)
    {
        return (str.Length > len) ? str.Substring(0, len) + " ..." : str;
    }

    /// <summary>
    /// 替换字符串里的单引号,主要应用于SQl语句中。
    /// </summary>
    /// <param name="theValue">要替换的字符串</param>
    /// <returns>替换后的新值</returns>
    public static string ReplaceString(string theValue)
    {
        if (theValue != null) theValue = theValue.Replace("'", "''");
        return theValue;
    }

    #endregion

    #region  文件处理

    /// <summary>
    /// 下载文件
    /// </summary>
    /// <param name="path">相对路径</param>
    public void DownloadFile(string path)
    {
        string filePath = Server.MapPath("../" + path);
        if (!File.Exists(filePath))
        {
            ClientScript.RegisterStartupScript(this.GetType(), "", "alert('文件不存在!'); history.back()", true);
            return;
        }
        new FileInfo(filePath).Attributes = FileAttributes.Normal;
        FileStream r = new FileStream(filePath, FileMode.Open);
        //设置基本信息
        Response.Buffer = false;
        Response.AddHeader("Connection", "Keep-Alive");
        Response.ContentType = "application/octet-stream";
        Response.AddHeader("Content-Disposition", "attachment;filename=" + Path.GetFileName(HttpUtility.UrlEncode(filePath)));
        Response.AddHeader("Content-Length", r.Length.ToString());
        while (true)
        {
            //开辟缓冲区空间
            byte[] buffer = new byte[1024];
            //读取文件的数据
            int leng = r.Read(buffer, 0, 1024);
            if (leng == 0)//到文件尾,结束
                break;
            if (leng == 1024)//读出的文件数据长度等于缓冲区长度,直接将缓冲区数据写入
                Response.BinaryWrite(buffer);
            else
            {
                //读出文件数据比缓冲区小,重新定义缓冲区大小,只用于读取文件的最后一个数据块
                byte[] b = new byte[leng];
                for (int i = 0; i < leng; i++)
                    b[i] = buffer[i];
                Response.BinaryWrite(b);
            }
        }
        r.Close();//关闭下载文件
        Response.End();//结束文件下载
    }

    /// <summary>
    /// 复制文件
    /// </summary>
    /// <param name="sourcePath">源路径</param>
    /// <param name="destPath">目标路径</param>
    /// <param name="overwrite">OverWrite参数设为true,如果文件已存在,将会覆盖文件</param>
    public void CopyFile(string sourcePath, string destPath, bool overwrite)
    {
        File.Copy(@sourcePath, @destPath, overwrite);
    }


    #endregion

    #region 时间处理

    /// <summary>
    /// 时间比较大小
    /// </summary>
    /// <param name="beginTime">开始时间</param>
    /// <param name="endTime">结束时间</param>
    /// <returns>开始时间大于等于结束返回True; 否则返回False</returns>
    public bool TimeCompare(string beginTime, string endTime)
    {
        DateTime time1 = DateTime.Parse(beginTime);
        DateTime time2 = DateTime.Parse(endTime);
        if (time1 >= time2)
        {
            return true;
        }
        return false;
    }

    /// <summary>
    /// 时间相减
    /// </summary>
    /// <param name="beginTime">开始时间</param>
    /// <param name="endTime">结束时间</param>
    /// <returns>返回TimeSpan; span.Days:天数、span.Hours:小时、span.Minutes分钟、span.Seconds:秒数</returns>
    public TimeSpan TimeMinus(string beginTime, string endTime)
    {
        DateTime dtone = Convert.ToDateTime(endTime);
        DateTime dtwo = Convert.ToDateTime(beginTime);
        TimeSpan span = dtone.Subtract(dtwo);
        return span;
    }

    /// <summary>
    /// 某年共多少天
    /// </summary>
    /// <param name="year">某年</param>
    /// <returns>天数</returns>
    public int TimeGetDayByYear(int year)
    {
        int days = 0;
        for (int i = 0; i < 12; i++)
        {
            days += DateTime.DaysInMonth(year, i);
        }
        return days;
    }

    /// <summary>
    /// 获取本周开始时间和结束时间
    /// </summary>
    /// <returns>返回string数组</returns>
    public string[] TimeThisWeek()
    {
        string[] time = new string[2];
        int nowWeek = Convert.ToInt32(DateTime.Now.DayOfWeek);

        time[0] = DateTime.Now.AddDays(1 - nowWeek).ToString("yyyy-MM-dd");
        time[1] = DateTime.Now.AddDays(7 - nowWeek).ToString("yyyy-MM-dd");
        return time;
    }

    /// <summary>
    /// 获取本月开始时间和结束时间
    /// </summary>
    /// <returns>返回string数组</returns>
    public string[] TimeThisMonth()
    {
        string[] time = new string[2];
        DateTime bTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01"));
        time[0] = bTime.ToString("yyyy-MM-01");
        time[1] = bTime.AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");
        return time;
    }

    #endregion

    #region 正则表达式验证

    /// <summary>
    /// 正则验证数字
    /// </summary>
    /// <param name="str"></param>
    /// <returns></returns>
    public bool IsNumeric(string str)
    {
        Regex reg1 = new Regex(@"^[-]?/d+[.]?/d*$");
        return reg1.IsMatch(str);
    }

    //  c#验证网络地址URL
    public bool ValidateUrl(string strUrl)
    {
        string patten = @"^http://(www/.){0,1}.+/.(com|net|cn)$"; //正则表达式
        Regex r = new Regex(patten);           //声明一个Regex对象
        Match m = r.Match(strUrl);            //使用Match方法进行匹配
        if (m.Success)      //匹配成功
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    #endregion

    #region 随机数
    /// <summary>
    /// 產生隨機的字母
    /// </summary>
    /// <returns></returns>
    public static string RandomnAlpha(int i)
    {
        string oriStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstyuwxyz";
        string reStr = "";
        Random rd = new Random();
        for (int k = 0; k < i; k++)
        {
            reStr += oriStr[rd.Next(0, oriStr.Length)].ToString();
        }
        return reStr;
    }

    #endregion

    #region 获取系统数据

    /// <summary>
    /// 获取客户端IP
    /// </summary>
    /// <returns></returns>
    public static string GetClientIP()
    {
        string myIP;
        System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;
        myIP = addressList[0].ToString();
        return myIP;
    }

    #endregion
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值