彩票走势图

ASP.net中如何建立信用卡认证控件

原创|其它|编辑:郝浩|2009-08-24 11:32:18.000|阅读 639 次

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

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

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

  1: using System;
  2: using System.Web.UI;
  3: using System.Web.UI.WebControls;
  4:
  5: namespace CustomValidators
  6: {
  7: ///
  8: /// Summary description for Class1.
  9: ///
  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中定制控件了。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:IT专家网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP