转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
ASP.net实现信用卡检查和自定义确认控件(二)         ★★★★

ASP.net实现信用卡检查和自定义确认控件(二)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:661 更新时间:2009/4/23 10:50:22

ASP.net实现信用卡检查和自定义确认控件(二)

 

欢迎来到第二部分.在写完前一部分之后我意识到如果把这些代码更模块化对你将会更有帮助.我说模块化意思是:不用每次应用都要拷贝,粘贴相同的代码.更简单 的方案是建一个继承了.net服务端控件功能的自定义控件.这不仅可使我们定制一些我们想做的事件,而且利用了被继承控件里已有的强大的功能.

我们来建立一个信用卡认证控件.首先我们需要继承Basevalidator''''s的功能.当然你可以自己写,但那不是一个严格意义上的自定义控件,不是吗?不仅如此而且会 占用你的很多时间.因此使用现成的东西对我们来说更划算.现在我们就开始吧. 首先,我们建个包含我们控件功能的类文件.


1:     using System;
2: using System.Web.UI;
3: using System.Web.UI.WebControls;
4:
5: namespace CustomValidators
6: {
7: /// <summary>
8: /// Summary description for Class1.
9: /// </summary>
10:
11: //-- 从 BaseValidator 类继承过来, 从而可以基类的一些功能.
12: public class CreditCardValidator : BaseValidator
13: {
14: protected override bool EvaluateIsValid()
15: {
16: //-- 把validation 控件的 controltovalidate 值赋给valueToValidate.
17: string valueToValidate = this.GetControlValidationValue(this.ControlToValidate);
18: int indicator = 1; //-- 每隔一位数的标记
19: int firstNumToAdd = 0; //-- 用来储存第一组数字的和
20: int secondNumToAdd = 0; //-- 用来储存第二组数字的和
21: string num1; //-- 用于当每隔一位数相加的和大于10时,储存最左边的整数
22:
23: string num2; //-- 用于当每隔一位数相加的和大于10时,储存最右边的整数
24:
25:
26: //-- 把信用卡号字符串转换为一个字符数组
27: char[] ccArr = valueToValidate.ToCharArray();
28:
29: for (int i=ccArr.Length-1;i>=0;i--)
30: {
31: char ccNoAdd = ccArr[i];
32: int ccAdd = Int32.Parse(ccNoAdd.ToString());
33: if (indicator == 1)
34: {
35: //-- 当我们碰到奇数位时,将它加入到总值里
36: firstNumToAdd += ccAdd;
37: //-- 将标记设为0,使下一次循环跳过此程序段
38: indicator = 0;
39: }
40: else
41: {
42: //-- 如果当前整数乘以2之后大于10,就将和分为两个整数并将它们相加,
43: //-- 相加的值再加到总值里.
44:
45: if ((ccAdd + ccAdd) >= 10)
46: {
47: int temporary = (ccAdd + ccAdd);
48: num1 = temporary.ToString().Substring(0,1);
49: num2 = temporary.ToString().Substring(1,1);
50: secondNumToAdd += (Convert.ToInt32(num1) + Convert.ToInt32(num2));
51: }
52: else
53: {
54: //-- 否则,将它们相加,相加的值再加到总值里.
55: secondNumToAdd += ccAdd + ccAdd;
56: }
57: //-- //-- 将标记设为1,我们就能对下一个整数执行不同的代码
58:
59: indicator = 1;
60: }
61: }
62: //-- 如果两个数的和被10整除,那么卡是有效的,否则,无效.
63:
64: bool isValid = false;
65: if ((firstNumToAdd + secondNumToAdd) % 10 == 0)
66: {
67: isValid = true;
68: }
69: else
70: {
71: isValid = false;
72: }
73: return isValid;
74: }
75: }
76: }
77:


接下来,将它保存为Validator.cs 在你的项目文件夹里.现在,为了能使用它,我们把它编译成dll.做这些你可以建一个批处理文件(.bat),也可以打开windows命令行输入以下字符:

csc /target:library /out:c:\inetpub\wwwroot\bin\Validator.dll *.cs /r:System.dll,System.Web.dll

有了dll文件你就可能使用这个控件了.随便打开一个你喜欢的编辑器,输入以下代码:

  

1:     <%@ Register TagPrefix="custom" Namespace="CustomValidators" Assembly="Validator" %>
2:
3: <html>
4: <body>
5: <form runat="server">
6: <asp:TextBox ID="CCNumber" Runat="server" />
7: <custom:CreditCardValidator
8: ControlToValidate="CCNumber"
9: Runat="server"
10: ErrorMessage="Credit Card Number Invalid!" />
11: <asp:Button Text="Validate" Runat="server" />
12: </form>
13: </body>
14: </html>


  保存并访问此页,输入一个测试的信用卡号码,好了,你现在已明白如何在ASP.NET中定制控件了.  


[C语言系列]NET 中C#的switch语句的语法  [系统软件]托拽Explore中的文件到VB.net的窗口
[系统软件]Boost库在XP+Visual C++.net中的安装  [常用软件]新配色面板:Paint.Net3.0RC1官方下载
[常用软件]用内建的“Net Meeting”聊天  [VB.NET程序]Henry的VB.NET之旅(三)—共享成员
[VB.NET程序]Henry的VB.NET之旅(二)—构造与析构  [VB.NET程序]Henry的VB.NET之旅(一)—失踪的窗体
[VB.NET程序]在托盘上显示Balloon Tooltip(VB.NET)  [VB.NET程序]Henry手记-VB.NET中动态加载Treeview节点(二)
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台