2012-10-22 135 views
0

我有一個TextBox和AjaxControlToolkit MaskedEditExtender供用戶輸入時間。該控件綁定到代碼中的時間跨度屬性(以及SQL Server中的時間(7)列)。要求是確保所有時間在1800小時和0000小時之間(這是用於蝙蝠記錄)。任何人都可以建議如何使用MaskedEditValidator來確保輸入的時間在這個範圍內?在一個範圍內驗證時間

我迄今爲止代碼:

<asp:TextBox ID="txtEmergenceTime" runat="server" CssClass="formInput" 
    Text='<%# Eval("EmergenceTime", "{0:hh\:mm}") %>' /> 
<asp:MaskedEditExtender ID="meeEmergenceTime" runat="server" 
    TargetControlID="txtEmergenceTime" Mask="99:99" MaskType="Time" 
    AutoComplete="false" AutoCompleteValue="0"/> 
<asp:MaskedEditValidator ID="valEmergenceTime" runat="server" 
    ErrorMessage="Emergence time must be between 18:00 and 00:00" 
    CssClass="error" ControlToValidate="txtEmergenceTime" 
    ValidationGroup="roostCount">*</asp:MaskedEditValidator> 

回答

1

你可以從18:00設置間隔爲23:59和利用MaskedEditValidato的MinimumValueMaximumValue性能。或者您可以爲驗證器擴展器定義ClientValidationFunction屬性並使用自定義驗證

+0

感謝您的指點。上面我的服務器控件的語法不完全正確(例如沒有ControlExtender屬性)。但是,即使在解決這個問題之後,我仍然無法看到使用MinimumValue和MaximumValue顯示的錯誤消息 - 儘管它在無效時間顯示,例如18:99,當我輸入數值超出範圍時,阻止更新表格。我也不能在我的驗證摘要中顯示錯誤消息。它看起來像很多人有這個驗證控制的問題,所以我可能會改爲香草CustomValidator(並更新問題,如果成功)。 – andyb