共享两个做项目最常用功能操作的封装类
来源:互联网 发布:无线mesh网络qos 编辑:程序博客网 时间:2024/05/21 08:04
一. 显示消息对话框类
做项目时总免不了要弹出对话框,或提示用户,或做用户确认。像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
}
2005-12-03 01:53 夜瞳の小漫~
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类 (转载)
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类
- 共享两个做项目最常用功能操作的封装类
- 两个做项目最常用功能操作的封装类
- 两个做项目最常用功能操作的封装类 (1)
- 两个做项目最常用功能操作的封装类 (2)
- 做项目最常用功能操作的封装类 (转载)
- xml操作类,封装了常用的对XML文件的操作功能....
- 对C#操作Excel常用的功能进行整理与总结并封装成类
- Microsoft .NET Pet Shop 4 架构与技术分析
- .Net 缓存代理类 的初步考虑
- 远程桌面中的“雕虫小技”
- 解决.NET下Web项目打开失败的问题
- 无线数据基本术语
- 共享两个做项目最常用功能操作的封装类
- C# 2.0:使用匿名方法、迭代程序和局部类来创建优雅的代码
- 今天收到大连交通大学的校庆邀请函
- 系统设计的一些原则
- dhDataGrid Ver1.0.0发布
- 《向着夕阳,挥洒青春的泪水》系列正式开始连载! (posted by biggates)
- Oracle数据仓库的分层管理器解决方案
- 数据挖掘技术及其应用现状概述
- Python学习系列之Object and Object-Orientation
评论
还是Hotmail里边的那个比较可爱。删除提示那里的。 回复
至于第二个验证类的确很实用,我在客户端的验证也做过类似的总结,JSClientValidator-客户端javascript验证新模式 回复
msg.Replace("/n",@"/n").Replace("/r",@"/r").Replace("/"",@"/""")
回复
不会是一个一个地加色吧? 回复
我弄了一个,我想弄成静态static的,但是编译出错
public class forms : Page
{
/// <summary>
/// 弹出窗口
/// </summary>
public static void alert(string message)
{
string myScript = string.Format(@"alert({0});", message);
Type cstype = myScript.GetType();
Page.ClientScript.RegisterStartupScript(cstype, "MyScript", myScript, true);
}
}
高手赐教 回复
/// <summary>
/// 显示消息提示对话框
/// </summary>
/// <param name="page">当前页面指针,一般为this</param>
/// <param name="msg">提示信息</param>
public static void Show(System.Web.UI.Page page,string msg)
{
page.ClientScript.RegisterStartupScript(page.GetType(),"message", "<script language='javascript' defer>alert('" + msg.ToString() + "');</script>");
} 回复