你好,我一直遇到这个问题一段时间了。
我在DetailsView中有一个绑定文本框,我已经添加了一个RegularExpressionValidator。但是在运行Web表单后,我发现即使应该这样,该值也永远不会被认为是有效的。该字段应仅在值为空或正好为3个大写字母时进行验证。如果我输入'CBA'应该可以工作我将这个表达式作为errormessage:^[A-Z]ABC$
,其中ABC是该字段从数据源获得的值。所以我想这与DetailsView中的Eval()函数有关,但我不明白究竟是什么以及如何避免它。
<EditItemTemplate>
<asp:TextBox ID="TBDepartFrom" runat="server" Text='<%# Bind("DepartFrom") %>'>
</asp:TextBox>
<asp:RegularExpressionValidator
ID="RegularExpressionValidator1" ControlToValidate="TBDepartFrom"
runat="server"
ErrorMessage="This code is invalid!"
Text='<%# Eval("DepartFrom", "^[A-Z]{3}$") %>'>
</asp:RegularExpressionValidator>
</EditItemTemplate>
答案 0 :(得分:1)
您的RegularExpressionValidator需要ValidationExpression。您正在将表达式放入“文本”字段中。
<EditItemTemplate>
<asp:TextBox ID="TBDepartFrom" runat="server" Text='<%# Bind("DepartFrom") %>'></asp:TextBox>
<asp:RegularExpressionValidator
ID="RegularExpressionValidator1" ControlToValidate="TBDepartFrom"
runat="server"
ErrorMessage="This code is invalid!"
ValidationExpression="^[A-Z]{3}$"
Text="*"></asp:RegularExpressionValidator>
</EditItemTemplate>