<asp:TextBox id="txtDate" runat="server" Width="70" Text='<%# DataBinder.Eval(Container.DataItem, "Date") %>'/>
<atk:MaskedEditExtender ID="meeDate" CultureName="en-GB" runat="server" Mask="99/99/9999" MaskType="Date" TargetControlID="txtDate" PromptCharacter="_" />
<atk:MaskedEditValidator ID="mevDate" runat="server" ControlExtender="meeDate" ControlToValidate="txtDate" EmptyValueMessage=" *" InvalidValueMessage="Date is invalid" IsValidEmpty="False" CssClass="validatorError" />
Кажется, что следующая установка отлично работает на стороне клиента (валидатор отлично проверяет соответствие dd / MM / yyyy), однако, когда я отправляю сообщения назад и проверяю Page.IsValid, значение равно false.Я посмотрел на mevDate.IsValid, и это неверно.Кажется, что установки CultulreName на MaskedEditExtender достаточно, чтобы заставить MaskedEditValidator выдавать правильный JavaScript, но на стороне сервера это не работает.Когда я переворачиваю CultureName на «en-US», все работает как на клиенте, так и на сервере.
ОБНОВЛЕНИЕ
Одна интересная вещь, которую я заметил, - во время отладки, еслиПосмотрите на участников MaskedEditValidator, вы заметите, что для private member _Culture установлено значение «en-US», а для MaskedEditExtender правильно установлено значение «en-GB».Кажется, нет способа изменить это.
ОБНОВЛЕНИЕ 2
В итоге я нашел решение, которое выложил ниже.