RegularExpressionValidator绑定文本框在DetailsView中永远不会有效

时间:2009-08-22 11:41:13

标签: asp.net regex

你好,我一直遇到这个问题一段时间了。 我在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>

1 个答案:

答案 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>