Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Настройка валидатора текстбокса, для сохранения десятичного числа в БД. / 7 сообщений из 7, страница 1 из 1
01.10.2011, 17:19:48
    #37463968
Neuren
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка валидатора текстбокса, для сохранения десятичного числа в БД.
Ситуация следующая: Есть страница сохранения/добавления элемента в БД. Одно из значений - дробное число (numeric(9,2)), которое вводится в текстбокс. Там такой валидатор:

Код: plaintext
1.
2.
3.
4.
<asp:RegularExpressionValidator ID="RegularExpressionValidatorNumberUpdate" 
            runat="server" ControlToValidate="TextBoxNumber" Display="Dynamic" 
            ErrorMessage="Формат числа неверный" 
            ValidationExpression="(\d{1,7})$|(\d{1,7},\d{1,2})$" Font-Bold="True" 
            ForeColor="Red"></asp:RegularExpressionValidator>

У меня на машине все работает. Если ввести число "8343.32", выдаст предупреждение, если "8343,32", то сохранит в базу. Но на другой все наоборот. Т.е. с точкой выдает предупреждение, но с зяпятой крашится, сохранилось бы только с точкой. Говорят проблема с локализацией.
На сколько я понимаю, нужно как то сделать, чтобы проверялись настройки браузера, или ОСи, чего там за это отвечает и в одном варианте в валидаторе стояла точка, в другом запятая. Рылся по форуму, нашел http://www.sql.ru/forum/actualthread.aspx?tid=827388&hl=%eb%ee%ea%e0%eb%e8%e7%e0%f6%e8%ff , посмотрел на три ссылки, которые предложил автор. Но там всюду о создании программы на разных языках и добавлении файлов ресурсов, а мне же нужно другое - определять глобальные настройки системы и в зависимости от них генерить валидатор.

Вопрос в том как это сделать. Подскажите куда рыть, чтобы найти корень проблемы, а то я пока даже не знаю по каким запросам искать.
...
Рейтинг: 0 / 0
01.10.2011, 18:01:44
    #37463998
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка валидатора текстбокса, для сохранения десятичного числа в БД.
Код: plaintext
ValidationExpression="\d{1,}\.?\d{0,}"
...
Рейтинг: 0 / 0
01.10.2011, 19:26:25
    #37464051
Neuren
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка валидатора текстбокса, для сохранения десятичного числа в БД.
МСУ,

Тогда крашится у меня на машине. Я не о том, где надо поставить точку, я о том, как сделать так, чтобы в зависимости от региональных настроек, или чего-то там, что отвечает за разделитель в десятичных числах, динамически устанавливался либо валидатор с запятой, либо с точкой.

Я не знаю куда рыть, чтобы найти корень задачи.
...
Рейтинг: 0 / 0
01.10.2011, 19:29:46
    #37464054
Neuren
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка валидатора текстбокса, для сохранения десятичного числа в БД.
Код: plaintext
Item item = new Item(CalendarTask2.SelectedDate, TextBoxName.Text.ToString(), Convert.ToDouble(TextBoxNumber.Text), CheckBoxBit.Checked);

на этой строке падает на "Convert.ToDouble(TextBoxNumber.Text)", при попытке упаковать в айтем, который будет добавляться/обновляться.
...
Рейтинг: 0 / 0
01.10.2011, 20:10:18
    #37464069
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка валидатора текстбокса, для сохранения десятичного числа в БД.
NeurenМСУ, Тогда крашится у меня на машине.
Так решайте эту проблему у себя в коде. Никаких региональных настроек, Вы чё.

С клиента всегда приходит разделитель "."

На сервере завязывайтесь всегда на разделитель "." и живите спокойно

Если с клиента пришел разделитель не ".", орём благим матом

В чем сложности?
...
Рейтинг: 0 / 0
01.10.2011, 20:12:38
    #37464071
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка валидатора текстбокса, для сохранения десятичного числа в БД.
Код: plaintext
Convert.ToDouble(TextBoxNumber.Text)
За такой код минимум руки отрывать нужно.

Код: plaintext
1.
2.
3.
4.
decimal d;
if (decimal.TryParse("107.88", NumberStyles.Number, new NumberFormatInfo() { NumberDecimalSeparator = "." }, out d))
{
    // ...
}
...
Рейтинг: 0 / 0
01.10.2011, 21:37:40
    #37464089
Neuren
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройка валидатора текстбокса, для сохранения десятичного числа в БД.
Спасибо большое.

Не надо отрывать руки =-( Я их только пытаюсь научить, а вы сразу отрывать. Я же тогда не смогу есть печенье и воровать.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Настройка валидатора текстбокса, для сохранения десятичного числа в БД. / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]