熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

使用C# 開發掩碼輸入文本框

2013-11-13 10:25:22  來源: .NET編程 

  掩碼輸入是一種常用的控件我記得第一次看見這種控件是在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 );

  }


From:http://tw.wingwit.com/Article/program/net/201311/13573.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.