织梦CMS - 轻松建站从此开始!

罗索

当前位置: 主页>杂项技术>Web>

常用操作封装类

jackyhwei 发布于 2011-06-25 22:32 点击:次 
在C#里利用Javascript来实现各种界面,包括:一. 显示消息对话框类;二.页面数据验证类。
TAG:

一. 显示消息对话框类

做项目时总免不了要弹出对话框,或提示用户,或做用户确认。像WinForm下的MessageBox一样很方便,但web下是不是也可以实现呢,答案是肯定的,我简单总结了一下并封装到类,在项目里像WinForm的MessageBox那样直接调用就可以,也可以把它编译成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;
   }
  }
  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
}

(zwei1121)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201106/14615.html]
本文出处:blog.csdn.net/zwei1121 作者:zwei1121
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容