c#

位置:IT落伍者 >> c# >> 浏览文章

使用C# 开发掩码输入文本框


发布日期:2023年12月10日
 
使用C# 开发掩码输入文本框

掩码输入是一种常用的控件我记得第一次看见这种控件是在Visual FoxPro中!感觉功能强大不错现在用C#开发aspNET应用程序也需要用到这种输入的控件便琢磨着自己做一个但是由于Visual FoxPro中的掩码文本框功能太强了一时还不敢去做网上也有一些自制的如/l但是感觉功能都不很适合后来在上看到了他们做的掩码文本框感觉这种方式在Web应用上很适合就把客户端代码down下来了?╯tedy software 作的是产品要花钱!而且很贵USDft)

分析了一下stedy的客户端脚本(VBScript)他们为每一种掩码规则都作了一个客户端的方法如下面是日期掩码格式化的客户端脚本代码

function maskDate( sValue sType )

dim zMonth

zMonth = array( January February March April May June July August September October November December )

if len( trim( sValue ) ) = then

maskDate =

setViewState false

elseif not( isDate( sValue ) ) then

maskDate = # INVALID DATE ENTERED #

setViewState true

else

select case ( sType )

case medium

maskDate = day( dateValue( sValue ) ) & & left( zMonth( month( dateValue( sValue ) ) ) ) & & year( dateValue( sValue ) )

case long

maskDate = zMonth( month( dateValue( sValue ) ) ) & & day( dateValue( sValue ) ) & & year( dateValue( sValue ) )

case else

maskDate = formatDateTime( sValue vbShortDate )

end select

setViewState false

end ifend function

可以看到处理方式是将文本框中的字符串格式化如果格式化成功则显示为格式化后的字符串否则显示# INVALID DATE ENTERED其他的方法与之类似像maskCurrency maskSSN什么的

MaskTextBox客户端有两个自定义属性

<PUBLIC:property name=maskType value= /><PUBLIC:property name=realValue value= />

第一个是掩码格式第二个是文本框真实值真实值为

目前遇到的问题有一个

客户端的文本框如何才能回传给服务器上面所说的两个属性?

想了半天觉着还是用一个Hidden类型的控件储存掩码文本框的真实值这样回传给服务器的时候就能通过对应的Hidden控件的Value属性取得真实值!

C# 代码片段如下

protected override void Render( HtmlTextWriter output )

{

outputWriteBeginTag( input );

outputWriteAttribute( typehidden );

outputWriteAttribute( value );

outputWriteAttribute( id__+

thisUniqueID );

outputWriteAttribute( name__+

thisUniqueID );

outputWrite( HtmlTextWriterTagRightChar );

baseRender( output );

}

上一篇:c#利用WebClient和WebRequest获取网页源代码

下一篇:C#图片处理的3种高级实用方法