Проблема с MaskedEdit из Ajax Control Toolkit - другая культура - PullRequest
0 голосов
/ 07 апреля 2009

Я хочу использовать maskededit, чтобы пользователь делал то же самое, что и в примере набора инструментов управления ajax для maskededit, но мне нужно использовать другой формат, поскольку даты на моем клиенте отображаются как dd-MM-гггг. Для начала мне также нужно ввести туда значение, поскольку дата загружается из БД (то есть, как только этот код заработает)

Посмотрите на этот образец: http://www.asp.net/ajax/ajaxcontroltoolkit/samples/maskededit/maskededit.aspx

Мне нужно сделать то же самое, что и в текстовом поле с надписью «Введите дату (формат: 99/99/9999):»

Я скачал образец кода и изменил формат на «99-99-9999» в соответствующем коде:

Но образец даты "12-12-1999" не отображается в текстовом поле. Почему нет?

Не могу понять, что я делаю не так. Я также попытался установить для CultureName значение da-DK, но это ничего не дало. Я также пробовал Chrome, Firefox и IE7, такое же поведение ...

Как мне это исправить?

<asp:TextBox ID="TextBox5" runat="server" Width="130px" MaxLength="1" style="text-align:justify" ValidationGroup="MKE">12-12-1999</asp:TextBox>
    <asp:ImageButton ID="ImgBntCalc" runat="server" ImageUrl="~/images/Calendar_scheduleHS.png" CausesValidation="False" />
    <ajaxToolkit:MaskedEditExtender ID="MaskedEditExtender5" runat="server"
        TargetControlID="TextBox5"
        Mask="99-99-9999"
        MessageValidatorTip="true"
        OnFocusCssClass="MaskedEditFocus"
        OnInvalidCssClass="MaskedEditError"
        MaskType="Date"
        DisplayMoney="Left"
        AcceptNegative="Left"
        ErrorTooltipEnabled="True" />
    <ajaxToolkit:MaskedEditValidator ID="MaskedEditValidator5" runat="server"
        ControlExtender="MaskedEditExtender5"
        ControlToValidate="TextBox5"
        EmptyValueMessage="Date is required"
        InvalidValueMessage="Date is invalid"
        Display="Dynamic"
        TooltipMessage="Input a date"
        EmptyValueBlurredText="*"
        InvalidValueBlurredMessage="*"
        ValidationGroup="MKE" />

Ответы [ 3 ]

3 голосов
/ 25 мая 2009

Полагаю, вы уже исправили это, но ... вы пытались использовать UserDateFormat="DayMonthYear"?

UserDateFormat="DayMonthYear"

<asp:TextBox ID="TextBox5" runat="server" Width="130px" MaxLength="1" style="text-align:justify" ValidationGroup="MKE">12-12-1999</asp:TextBox>
<asp:ImageButton ID="ImgBntCalc" runat="server" ImageUrl="~/images/Calendar_scheduleHS.png" CausesValidation="False" />
<ajaxToolkit:MaskedEditExtender ID="MaskedEditExtender5" runat="server"
    TargetControlID="TextBox5"
    Mask="99-99-9999"
    MessageValidatorTip="true"
    OnFocusCssClass="MaskedEditFocus"
    OnInvalidCssClass="MaskedEditError"
    MaskType="Date"
    DisplayMoney="Left"
    AcceptNegative="Left"
    ErrorTooltipEnabled="True" **UserDateFormat="DayMonthYear"** />
<ajaxToolkit:MaskedEditValidator ID="MaskedEditValidator5" runat="server"
    ControlExtender="MaskedEditExtender5"
    ControlToValidate="TextBox5"
    EmptyValueMessage="Date is required"
    InvalidValueMessage="Date is invalid"
    Display="Dynamic"
    TooltipMessage="Input a date"
    EmptyValueBlurredText="*"
    InvalidValueBlurredMessage="*"
    ValidationGroup="MKE" />
1 голос
/ 28 сентября 2009

Я использую ValidationExpression в MaskedEditValidator заменить userDateFormat тип Дата dd/MM/yyy очень хорошо. Это:

ValidationExpression="(((((0[1-9])|(1\d)|(2[0-8]))\/((0[1-9])|(1[0-2])))|((31\/((0[13578])|(1[02])))|((29|30)\/((0[1,3-9])|(1[0-2])))))\/((20[0-9][0-9])|(19[0-9][0-9])))|((29\/02\/(19|20)(([02468][048])|([13579][26]))))"

А в MaskedEditExtender положить MaskType="none".
Подтвердите в порядке.

0 голосов
/ 07 апреля 2009
<asp:TextBox ID="TextBox5" runat="server" Width="130px" MaxLength="10" style="text-align:justify" ValidationGroup="MKE" Text="12-12-1999"></asp:TextBox>

Мне интересно, переместите ли вы текст к фактическому текстовому атрибуту, если это что-то изменит ... У меня нет самой последней версии AjaxToolkit, я бы попробовал сам ... О, я только что заметил, ваша максимальная длина действительно установлена ​​в единицу или это ошибка копирования и вставки? Это тоже может вызвать проблемы.

...