<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,这是错误的。似乎在MaskedEditExtender上设置CultulreName足以使MaskedEditValidator发出正确的JavaScript,但是在服务器端它不起作用。当我将CultureName翻转为“ en-US”时,无论在客户端还是在服务器上,一切都按预期工作。

更新

我注意到的一件有趣的事情是,在调试过程中,如果您查看MaskedEditValidator成员,您会注意到私有成员_Culture设置为“ en-US”,而MaskedEditExtender正确设置为“ en-GB”。似乎没有办法改变这一点。

更新2

我得到了下面发布的解决方案。

最佳答案

好像是一个错误,可能是您想在ASP.NET论坛上发布的东西。这里有一个供AJAX控件工具箱使用的论坛,MS人士也可以收听。

09-12 13:54