Minimal, полный и Проверяемость пример (Framework 3.5):CompareValidator не позволяет разделителям тысяч - это ошибка или по дизайну?
<%@ Page Language="C#" Culture="en-US" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<form id="form1" runat="server">
<asp:TextBox ID="txt" runat="server" />
<asp:CompareValidator runat="server" ControlToValidate="txt" Operator="DataTypeCheck" Type="Double" Text="This is not a double." />
<asp:Button runat="server" Text="Do Postback" />
</form>
</body>
</html>
Введите 1,234.0
в текстовом поле и нажмите клавишу TAB.
Ожидаемый результат: Ничего.
Фактический результат: This is not a double.
Почему я ожидаю, что сравнение, чтобы добиться успеха: Потому что the documentation says: «Проверка не выполняется, если значение не может быть преобразовано в указанный тип данных.», но Convert.ToDouble("1,234.0", CultureInfo.GetCultureInfo("en-US"))
succeeds.
Мой вопрос:
Является ли это ошибка (который я должен сообщить Microsoft Connect) или я пропустил какую-то часть документации, где он говорит, что CompareValidator использует различные правила преобразования, чем остальная часть .NET Framework?
Спасибо. Это очень полезный комментарий, но, к сожалению, он не отвечает на вопрос (вопрос написан жирным шрифтом в нижней части моего текста). – Heinzi