asp.net 利用AjaxToolkit製作強行輸入HH:MM:SS的TextBox

asp.net 利用AjaxToolkit製作強行輸入HH:MM:SS的方塊視窗

有時候會遇到使用者有只允許輸入時分秒的TextBox的需求

以下分享在網路上找到的解決方案

1. 先對專案案右鍵,"管理Nuget視窗",搜尋"線上",找尋"AjaxControlToolkit",安裝最新穩定版20.x 以上

2.安裝完成後,記得檢查專案內web.config 與 packages.config 參數是否為當前安裝版本

<assemblies>
       <add assembly="AjaxControlToolkit, Version=20.1.0, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e" />
</assemblies>

<packages>

  <package id="AjaxControlToolkit" version="20.1.0" targetFramework="net46" />

</packages>

若版本未更新,請手動調整,或重新步驟2

3.建立Textbox Mask遮罩
<asp:TextBox ID="txtFilterRecordingTimeStart"  runat="server" size="6" ></asp:TextBox>
<ajaxToolkit:MaskedEditExtender ID="txtFilterRecordingTimeStart_MaskedEditExtender" runat="server" TargetControlID="txtFilterRecordingTimeStart" MessageValidatorTip="true" MaskType="Time" Mask="99:99:99" UserTimeFormat="TwentyFourHour" AutoComplete="false" InputDirection="LeftToRight" ErrorTooltipEnabled="True" ClearTextOnInvalid="true" />

關鍵點在於屬性中的MaskType="TimeMask="99:99:99" 兩項設定
 

4.後端處理

由於純時間,所以此次改完全部轉為秒數,程式碼如下
int sec=Convert.ToInt32(TimeSpan.Parse(txtFilterRecordingTimeStart.Text).TotalSeconds);

5.更版注意事項
除須注意web.config 與 packages.config 參數外
也需更新bin\(Project).dll編譯檔案以及bin\AjaxControlToolkit.dll
才可順利運行

 Good Luck