Текстовое поле с привязкой к RegularExpressionValidator никогда не действует в DetailsView - PullRequest
1 голос
/ 22 августа 2009

Здравствуйте, у меня некоторое время были проблемы с этим. У меня есть связанное текстовое поле в DetailsView, к которому я добавил RegularExpressionValidator. Однако после запуска веб-формы я обнаружил, что значение никогда не считается действительным, даже когда оно должно быть. Поле должно проверяться только тогда, когда значение пустое или ровно 3 заглавные буквы. Если я ввожу 'CBA', который должен работать, я получаю это выражение как сообщение об ошибке: ^[A-Z]ABC$ , где ABC - значение, которое поле имеет из источника данных . Поэтому я предполагаю, что это как-то связано с функцией Eval () внутри DetailsView, но я не понимаю, что именно и как этого избежать.

<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 Ответ

1 голос
/ 22 августа 2009

Ваше 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...