共享两个做项目最常用功能操作的封装类

(转载http://www.seaskyer.net/Index/Catalog12/223.html)

共享两个做项目最常用功能操作的封装类

一. 显示消息对话框类

    做项目时总免不了要弹出对话框,或提示用户,或做用户确认。像WinForm下的MessageBox一样很方便,但web下是不是也可以实现呢,答案是肯定的,我简单总结了一下并封装到类,在项目里像WinFormMessageBox那样直接调用就可以,也可以把它编译成dll作为组件直接调用,并且它也没有弹出对话框时的大白屏现象:)。

     /// <summary>

     /// 显示消息提示对话框。

     /// 李天平

     /// 2005.10.1

     /// </summary>

     public class MessageBox

     {       

         private  MessageBox()

         {            

         }

         /// <summary>

         /// 显示消息提示对话框

         /// </summary>

         /// <param name="page">当前页面指针,一般为this</param>

         /// <param name="msg">提示信息</param>

         public static void  Show(System.Web.UI.Page page,string msg)

         {

              page.RegisterStartupScript("message","<script language='javascript' defer>alert('"+msg.ToString()+"');</script>");

         }

         /// <summary>

         /// 控件点击消息确认提示框

         /// </summary>

         /// <param name="page">当前页面指针,一般为this</param>

         /// <param name="msg">提示信息</param>

         public static void  ShowConfirm(System.Web.UI.WebControls.WebControl Control,string msg)

         {

              //Control.Attributes.Add("onClick","if (!window.confirm('"+msg+"')){return false;}");

              Control.Attributes.Add("onclick", "return confirm('" + msg + "');") ;

         }

         /// <summary>

         /// 显示消息提示对话框,并进行页面跳转

         /// </summary>

         /// <param name="page">当前页面指针,一般为this</param>

         /// <param name="msg">提示信息</param>

         /// <param name="url">跳转的目标URL</param>

         public static void ShowAndRedirect(System.Web.UI.Page page,string msg,string url)

         {

              StringBuilder Builder=new StringBuilder();

              Builder.Append("<script language='javascript' defer>");

              Builder.AppendFormat("alert('{0}');",msg);

              Builder.AppendFormat("top.location.href='{0}'",url);

              Builder.Append("</script>");

              page.RegisterStartupScript("message",Builder.ToString());

 

         }

         /// <summary>

         /// 输出自定义脚本信息

         /// </summary>

         /// <param name="page">当前页面指针,一般为this</param>

         /// <param name="script">输出脚本</param>

         public static void ResponseScript(System.Web.UI.Page page,string script)

         {

              page.RegisterStartupScript("message","<script language='javascript' defer>"+script+"</script>");

         }

     }

二.页面数据验证类

做项目,特别做MIS,更避免不了有用户输入数据需要做有效性验证,这里我总结封装了一个页面数据校验的工具类,用起来也是很方便。

     /// <summary>

     /// 页面数据校验类

     /// 李天平

     /// 2004.8

     /// </summary>

     public class PageValidate

     {

         private static Regex RegNumber = new Regex("^[0-9]+$");

         private static Regex RegNumberSign = new Regex("^[+-]?[0-9]+$");

         private static Regex RegDecimal = new Regex("^[0-9]+[.]?[0-9]+$");

         private static Regex RegDecimalSign = new Regex("^[+-]?[0-9]+[.]?[0-9]+$"); //等价于^[+-]?\d+[.]?\d+$

         private static Regex RegEmail = new Regex("^[\\w-]+@[\\w-]+\\.(com|net|org|edu|mil|tv|biz|info)$");//w 英文字母或数字的字符串,和 [a-zA-Z0-9] 语法一样

         private static Regex RegCHZN = new Regex("[\u4e00-\u9fa5]");

 

         public PageValidate()

         {

         }

         #region 数字字符串检查              

         /// <summary>

         /// 检查Request查询字符串的键值,是否是数字,最大长度限制

         /// </summary>

         /// <param name="req">Request</param>

         /// <param name="inputKey">Request的键值</param>

         /// <param name="maxLen">最大长度</param>

         /// <returns>返回Request查询字符串</returns>

         public static string FetchInputDigit(HttpRequest req, string inputKey, int maxLen)

         {

              string retVal = string.Empty;

              if(inputKey != null && inputKey != string.Empty)

              {

                   retVal = req.QueryString[inputKey];

                   if(null == retVal)

                       retVal = req.Form[inputKey];

                   if(null != retVal)

                   {

                       retVal = SqlText(retVal, maxLen);

                       if(!IsNumber(retVal))

                            retVal = string.Empty;

 &,nbsp;                 }

              }

              if(retVal == null)

                   retVal = string.Empty;

              return retVal;

         }       

         /// <summary>

         /// 是否数字字符串

         /// </summary>

         /// <param name="inputData">输入字符串</param>

         /// <returns></returns>

         public static bool IsNumber(string inputData)

         {

              Match m = RegNumber.Match(inputData);

              return m.Success;

         }       

         /// <summary>

         /// 是否数字字符串可带正负号

         /// </summary>

         /// <param name="inputData">输入字符串</param>

         /// <returns></returns>

         public static bool IsNumberSign(string inputData)

         {

              Match m = RegNumberSign.Match(inputData);

              return m.Success;

         }       

         /// <summary>

         /// 是否是浮点数

         /// </summary>

         /// <param name="inputData">输入字符串</param>

         /// <returns></returns>

         public static bool IsDecimal(string inputData)

         {

              Match m = RegDecimal.Match(inputData);

              return m.Success;

         }       

         /// <summary>

         /// 是否是浮点数可带正负号

         /// </summary>

         /// <param name="inputData">输入字符串</param>

         /// <returns></returns>

         public static bool IsDecimalSign(string inputData)

         {

              Match m = RegDecimalSign.Match(inputData);

              return m.Success;

         }

         #endregion

 

         #region 中文检测

         /// <summary>

         /// 检测是否有中文字符

         /// </summary>

         /// <param name="inputData"></param>

         /// <returns></returns>

         public static bool IsHasCHZN(string inputData)

         {

              Match m = RegCHZN.Match(inputData);

              return m.Success;

         }

         #endregion

 

         #region 邮件地址

         /// <summary>

         /// 是否是浮点数可带正负号

         /// </summary>

         /// <param name="inputData">输入字符串</param>

         /// <returns></returns>

         public static bool IsEmail(string inputData)

         {

              Match m = RegEmail.Match(inputData);

              return m.Success;

         }

         #endregion

 

         #region 其他

         /// <summary>

         /// 检查字符串最大长度,返回指定长度的串

         /// </summary>

         /// <param name="sqlInput">输入字符串</param>

         /// <param name="maxLength">最大长度</param>

         /// <returns></returns>         

         public static string SqlText(string sqlInput, int maxLength)

         {            

              if(sqlInput != null && sqlInput != string.Empty)

              {

                   sqlInput = sqlInput.Trim();                            

                   if(sqlInput.Length > maxLength)//按最大长度截取字符串

                       sqlInput = sqlInput.Substring(0, maxLength);

              }

              return sqlInput;

         }       

         /// <summary>

         /// 字符串编码

         /// </summary>

         /// <param name="inputData"></param>

         /// <returns></returns>

         public static string HtmlEncode(string inputData)

         {

              return HttpUtility.HtmlEncode(inputData);

         }

         /// <summary>

         /// 设置Label显示Encode的字符串

         /// </summary>

         /// <param name="lbl"></param>

         /// <param name="txtInput"></param>

         public static void SetLabel(Label lbl, string txtInput)

         {

              lbl.Text = HtmlEncode(txtInput);

         }

         public static void SetLabel(Label lbl, object inputObj)

         {

              SetLabel(lbl, inputObj.ToString());

         }       

 

         #endregion

}

转载于:https://www.cnblogs.com/loway/archive/2006/01/16/318415.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线程与线程同步

目录线程概述线程概念并发和并行线程ID创建线程终止线程回收线程取消线程取消一个线程取消状态以及类型取消点线程可取消性的检测分离线程注册线程清理处理函数线程属性线程栈属性分离状态属性线程安全线程栈可重入函数线程安全函数一次性初始化线程特有数据线程局部存储更多细…

《程序是怎样跑起来的》第一章有感

在看完《程序是怎样跑起来的》第一章后&#xff0c;我开始明白程序是怎么运行的&#xff0c;该书介绍了程序是什么、由什么组成的以及是内存的机制。读完这本书的第一章后&#xff0c;我知道程序是指令与数据的组合。不过在刚学习的时候&#xff0c;我只是按照书介绍说知&#…

CAS证书分析(2)

CAS的核心就是其Ticket&#xff0c;及其在Ticket之上的一系列处理操作。CAS的主要票据有TGT、ST、PGT、PGTIOU、PT&#xff0c;其中TGT、ST是CAS1.0协议中就有的票据&#xff0c;PGT、PGTIOU、PT是CAS2.0协议中有的票据。一 名词解释TGT&#xff08;Ticket Grangting Ticket&am…

Java Web 之Token+Cookie+Session

发展史&#xff1a; 1. 早期的WEB基本上就是文档的浏览而已&#xff0c;服务器不需要记录谁在某个时间都浏览了什么文档&#xff0c;每次请求都是全新的HTTP协议。 2. 随着交互式WEB应用的兴起&#xff0c;例如在线购物网站&#xff0c;需要登录的网站等&#xff0c;则需要对会…

Google Logos

All Googles logos.... 转载于:https://www.cnblogs.com/WuCountry/archive/2006/01/20/320689.html

CC254X 蓝牙博文收集

【BLE】CC2541之添加特征值 【BLE】CC2541之发现多个特征值句柄 IoT产品之蓝牙设计 BLE-CC2541 BLE-CC2640

〈转贴〉如何解决 Windows XP 中的硬件和软件驱动程序问题

如何解决 Windows XP 中的硬件和软件驱动程序问题 察看本文应用于的产品文章编号:322205最后修改:2004年3月25日修订:1.0本页 症状原因解决方案 检查第三方软件或驱动程序 检查新硬件这篇文章中的信息适用于:症状 在安装新硬件设备或新软件后&#xff0c;您的计算机可能自动开始…

断点续传与差分升级

断点续传的原理 基于STM32单片机的差分升级(增量升级)算法 OTA 差分升级 云端一体化差分升级&#xff0c;AliOS Things物联网升级“利器” 详解STM32在线IAP升级 单片机差分升级算法(STM32,M0,M3,M4等芯片都适用) AliOS Things 3.0 开发&#xff1a;OTA之差分升级快速上手…

MYSQL配置关键

2019独角兽企业重金招聘Python工程师标准>>> 在启动管理init.d里关于mysql的命令有 sudo /etc/init.d/mysql start|stop|restart|reload|force-reload|status sudo apt-get install mysql-server GRANT ALL PRIVILEGES ON *.* TO rootlocalhost IDENTIFIED BY &quo…

百度正式发布PaddlePaddle深度强化学习框架PARL

去年&#xff0c;斯坦福大学神经生物实验室与 EPFL 联合举办了一场强化学习赛事——人工智能假肢挑战赛&#xff08;AI for Prosthetics Challenge&#xff09;&#xff0c;希望将强化学习应用到人体腿部骨骼仿真模拟模型的训练。 经过激烈的角逐&#xff0c;最终来自百度大脑的…

关于lvalue and rvalue

2019独角兽企业重金招聘Python工程师标准>>> lvalue &#xff1a;An object is a region of storage that can be examined and stored into.An lvalue does not necessarily permit modification of the object it designates&#xff1a; eg An array type An inc…

[转载]全面解读软件版本的标志

软件名称后面经常有一些英文和数字&#xff0c;如&#xff1a;QQ 2003 Beta&#xff0c;这些都是软件的版本标志&#xff0c;通过它&#xff0c;我们可以对软件的类型有所了解&#xff1a;Beta(β)&#xff1a;测试版&#xff0c;为正式版本推出之前发布&#xff0c;可能存在一…

gitlab 使用教程

视频教程&#xff1a;叮&#xff5e;&#xff0c;你收到一份最全的gitlab使用说明 地址&#xff1a;https://www.bilibili.com/video/BV11E411x7Uv?spm_id_from333.337.search-card.all.click 目录简介1、注册、登录2、创建项目3、添加项目成员4、分支权限设置5、下载安装git6…

mssql 分页

为什么80%的码农都做不了架构师&#xff1f;>>> http://www.cnblogs.com/ddlink/archive/2013/03/30/2991007.html 分页问题修正 http://blog.csdn.net/wangkadm/article/details/12708005 转载于:https://my.oschina.net/macleo/blog/223782

今天体育课受伤

中午轮滑体育课&#xff0c;由于技术不到家&#xff08;基本上还不会&#xff09;&#xff0c;一不小心就扭下去了&#xff0c;虽然从开始下倒到坐在地上不到1秒的时间&#xff0c;不过那一瞬间的记忆却特别的漫长&#xff1a; 先是向左倒&#xff0c;膝关节处感觉到了咔嚓的两…

日常收录

我于昨晚去世&#xff0c;去时心如止水。 我于今早重生&#xff0c;来时心怀暖意转载于:https://www.cnblogs.com/joker331/p/10302026.html

WiFi网络编程(带OTA功能)

参考&#xff1a;WiFi网络编程&#xff08;上&#xff09; 地址&#xff1a;https://www.bilibili.com/video/BV1VV411b75h/?spm_id_from333.788.recommend_more_video.0 参考&#xff1a;WiFi网络编程&#xff08;下&#xff09; 地址&#xff1a;https://www.bilibili.com/v…

OSAL操作系统分析(添加自定义任务)

目录事件驱动型OSAL操作系统原理分析OSAL消息收发过程向OSAL系统添加自定义任务事件驱动型OSAL操作系统原理分析 任务就是一个函数&#xff0c;每一个任务都要有一个函数&#xff0c;形成函数列表&#xff08;函数指针数组&#xff09; 以上就是任务处理函数&#xff0c;都是任…

自定义控件学习,优秀网站推荐

http://chs.gotdotnet.com/quickstart/aspplus/http://www.codeproject.com/转载于:https://www.cnblogs.com/wulixuan/archive/2006/04/02/364745.html

Android保存设置的PreferenceActivity

界面XML文件&#xff1a;preference_setting.xml [java] view plaincopyprint?<?xml version"1.0" encoding"UTF-8"?> <PreferenceScreen xmlns:android"http://schemas.android.com/apk/res/android"> <PreferenceCate…