2011-10-18 61 views
0

我使用的MaskedEditExtender控件設置爲MaskType="DateTime"AcceptAMPM="true",但我需要知道用戶如何更改am/pm,而無需爲PM輸入A,爲PM輸入P?有沒有一種方法可以將箭頭或其他東西添加到此控件中,以便在從AM更改爲PM時更方便用戶使用?我的用戶不會知道他們需要輸入值才能更改。我可以更改默認的MaskedEditExtender am/pm嗎?

<asp:TextBox ID="txtDateTime" runat="server"></asp:TextBox> 
     <asp:MaskedEditExtender ID="MaskedEditExtender1" runat="server" 
     TargetControlID="txtDateTime" MaskType="DateTime" Mask="99/99/9999 99:99" 
     MessageValidatorTip="true" CultureName="en-US" ErrorTooltipEnabled="True" 
     AcceptAMPM="true"> 
     </asp:MaskedEditExtender> 

回答

0

我不認爲有任何方法來改變功能,至少不是沒有大量的工作。如果你需要一些更靈活的東西,我會建議看一下jQuery Timepicker。

+0

這太糟糕了。我真的很喜歡AJAX Control Toolkit。我根本不理解jQuery。我嘗試安裝和使用這個項目的jQuery,但我無法得到它的工作。我只會提供一個小工具提示,告訴用戶他們必須在上午/下午輸入A或P。 (還是)感謝你的建議。 :) – jlg

+0

你總是可以完全消除AM/PM,如果你願意的話可以使用軍事時間。 –

+0

這是另一個很好的建議,但對我的用戶來說太混亂了。只有大約5個人會使用這個網站,我們都在同一時區,因此可能沒有必要。 – jlg

0
<script type="text/javascript"> 
    //Set the default text to "PM" 
    var mee; 
    function pageLoad() { 
     //Please use your MaskedEditExtender's id or behaviorId. 
     mee = $find("MaskedEditExtender3"); 

     //The target textbox control 
     var e = mee.get_element(); 

     //Remove the focus event handler 
     if (mee._focusHandler) { 
      $removeHandler(e, "focus", mee._focusHandler); 
     } 
     //Add a new focus event handler which inherits from the old one. 
     mee._focusHandler = Function.createDelegate(mee, newFocus); 
     $addHandler(e, "focus", mee._focusHandler); 
    } 
    function newFocus() { 
     mee._onFocus(); 
     if ((mee._MaskType == AjaxControlToolkit.MaskedEditType.Time || mee._MaskType == AjaxControlToolkit.MaskedEditType.DateTime) && mee.get_CultureAMPMPlaceholder() != "" && mee._getClearMask() == "") { 
      if (mee._AcceptAmPm) { 
       //The original code of default AM/PM text in function _onFocus() is: 
       //this.InsertAMPM(this.get_CultureAMPMPlaceholder().substring(0,1)); 

       mee.InsertAMPM(meeTueEndCorp.get_CultureFirstLetterPM()); 
       mee.setSelectionRange(0, 0); 
      } 
     } 
    } 
</script> 
<div> 
    <strong>Enter Time (format: <em>99:99:99</em>):</strong> 
    <br /> 
    <asp:TextBox ID="TextBox3" runat="server" Width="130px" Height="16px" /> 
    <ajaxToolkit:MaskedEditExtender ID="MaskedEditExtender3" runat="server" TargetControlID="TextBox3" 
     Mask="99:99:99" MessageValidatorTip="true" OnFocusCssClass="MaskedEditFocus" 
     OnInvalidCssClass="MaskedEditError" MaskType="Time" AcceptAMPM="True" ErrorTooltipEnabled="True" /> 
    <ajaxToolkit:MaskedEditValidator ID="MaskedEditValidator3" runat="server" ControlExtender="MaskedEditExtender3" 
     ControlToValidate="TextBox3" IsValidEmpty="False" EmptyValueMessage="Time is required" 
     InvalidValueMessage="Time is invalid" Display="Dynamic" TooltipMessage="Input a time" 
     EmptyValueBlurredText="*" InvalidValueBlurredMessage="*" /> 
    <br /> 
    <em><span style="font-size: 8pt">Tip: Type 'A' or 'P' to switch AM/PM</span></em> 
</div> 
</form> 

檢查這個環節,可能是這會有所幫助。 http://forums.asp.net/t/1339632.aspx 或者如果您想將默認值設置爲PM。我修改了ajax控件工具包代碼中的代碼,並再次將其編譯爲PM的默認工作。 請在我的博客上查看此代碼。

http://blog.sumedh.in/post/2011/12/16/Ajax-Net-35-Control-Toolkit-MaskedEditExtender-Default-to-PM.aspx

相關問題