Могу ли я изменить значение по умолчанию для MaskedEditExtender am / pm? - PullRequest
0 голосов
/ 18 октября 2011

Используемый мной элемент управления MaskedEditExtender настроен для MaskType="DateTime" и AcceptAMPM="true", но мне нужно знать, как пользователь может изменить am / pm без необходимости вводить A для AM и P в личку? Есть ли способ добавить стрелки или что-то в этот элемент управления, чтобы он был более удобным при переходе с 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>

Ответы [ 2 ]

0 голосов
/ 22 января 2014
<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

0 голосов
/ 18 октября 2011

Я не верю, что есть какой-либо способ изменить функциональность, по крайней мере, без значительного объема работы. Если вам нужно что-то более гибкое, я бы посоветовал взглянуть на jQuery Timepicker.

...