ASP.net实现信用卡检查和自定义确认控件(二)
ASP.net实现信用卡检查和自定义确认控件(二)
欢迎来到第二部分.在写完前一部分之后我意识到如果把这些代码更模块化对你将会更有帮助.我说模块化意思是:不用每次应用都要拷贝,粘贴相同的代码.更简单 的方案是建一个继承了.net服务端控件功能的自定义控件.这不仅可使我们定制一些我们想做的事件,而且利用了被继承控件里已有的强大的功能. 我们来建立一个信用卡认证控件.首先我们需要继承Basevalidator's的功能.当然你可以自己写,但那不是一个严格意义上的自定义控件,不是吗?不仅如此而且会 占用你的很多时间.因此使用现成的东西对我们来说更划算.现在我们就开始吧. 首先,我们建个包含我们控件功能的类文件.
PRE.ShowCode {BACKGROUND-COLOR:#ffffff;PADDING-RIGHT: 3px;Border: 0px;FONT-SIZE: 11px;PADDING-BOTTOM: 0px;PADDING-TOP: 0px;FONT-FAMILY: "Courier New";}.ColorLineNumber { color:red; }.DefaultFontFace { color:arial; }.DefaultFontSize { size:3; }.ColorBackGroundLine { color:#EEEECC; }.ColorAlternatingBackGroundLine { color:#FFFFEE; }.ColorComment { color:green; }.ColorServerSideTag { color:green; }.ColorDataBinding { color:dodgerblue; }.ColorControlTag { color:maroon; }.ColorAspTemplateTag { color:green; }.ColorStartHtmlTag { color:blue; }.ColorEndHtmlTag { color:blue; }.ColorVBKeyword { color:blue; }.ColorVBComment { color:green; }.ColorCSKeyword { color:blue; }.ColorSQLKeyword { color:blue; }.ColorCSComment { color:green; }.ColorSQLComment { color:green; }.ColorSQLFunctions { color:maroon; }.ColorSQLDataTypes { color:green; }
{
{
{
int indicator = 1;
int firstNumToAdd = 0;
int secondNumToAdd = 0;
string num1;
string num2;
{
{
firstNumToAdd += ccAdd;
indicator = 0;
}
{
{
num1 = temporary.ToString().Substring(0,1);
num2 = temporary.ToString().Substring(1,1);
secondNumToAdd += (Convert.ToInt32(num1) + Convert.ToInt32(num2));
}
{
secondNumToAdd += ccAdd + ccAdd;
}
indicator = 1;
}
}
{
isValid = }
{
isValid = }
}
}
}
接下来,将它保存为Validator.cs 在你的项目文件夹里.现在,为了能使用它,我们把它编译成dll.做这些你可以建一个批处理文件(.bat),也可以打开windows命令行输入以下字符: csc /target:library /out:c:\inetpub\wwwroot\bin\Validator.dll *.cs /r:System.dll,System.Web.dll
有了dll文件你就可能使用这个控件了.随便打开一个你喜欢的编辑器,输入以下代码:
PRE.ShowCode {BACKGROUND-COLOR:#ffffff;PADDING-RIGHT: 3px;Border: 0px;FONT-SIZE: 11px;PADDING-BOTTOM: 0px;PADDING-TOP: 0px;FONT-FAMILY: "Courier New";}.ColorLineNumber { color:red; }.DefaultFontFace { color:arial; }.DefaultFontSize { size:3; }.ColorBackGroundLine { color:#EEEECC; }.ColorAlternatingBackGroundLine { color:#FFFFEE; }.ColorComment { color:green; }.ColorServerSideTag { color:green; }.ColorDataBinding { color:dodgerblue; }.ColorControlTag { color:maroon; }.ColorAspTemplateTag { color:green; }.ColorStartHtmlTag { color:blue; }.ColorEndHtmlTag { color:blue; }.ColorVBKeyword { color:blue; }.ColorVBComment { color:green; }.ColorCSKeyword { color:blue; }.ColorSQLKeyword { color:blue; }.ColorCSComment { color:green; }.ColorSQLComment { color:green; }.ColorSQLFunctions { color:maroon; }.ColorSQLDataTypes { color:green; }<%@ Register TagPrefix="custom"
<html>
<body>
<form runat="server">
<asp:TextBox ID="CCNumber" Runat="server" />
<custom:CreditCardValidator
ControlToValidate="CCNumber"
Runat="server"
ErrorMessage="Credit Card Number Invalid!" />
<asp:Button Text="Validate" Runat="server" />
</form>
</body>
</html>
保存并访问此页,输入一个测试的信用卡号码,好了,你现在已明白如何在ASP.NET中定制控件了.