【问题标题】:RegularExpressionValidator bound Textbox never valid within DetailsViewRegularExpressionValidator 绑定的文本框在 DetailsView 中永远无效
【发布时间】:2009-08-22 20:21:38
【问题描述】:

您好,这个问题我已经有一段时间了。 我在 DetailsView 中有一个绑定的文本框,我添加了一个 RegularExpressionValidator。然而,在运行 Web 表单后,我发现该值从未被认为是有效的,即使它应该是有效的。该字段应仅在值为空或正好是 3 个大写字母时验证。如果我输入应该可以工作的“CBA”,我会得到这个表达式作为错误消息:^[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>

【问题讨论】:

    标签: asp.net regex


    【解决方案1】:

    您的RegularExpressionValidator 需要ValidationExpression。而是将表达式放入 Text 字段中。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多