powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / проблема с вводом даты.
9 сообщений из 9, страница 1 из 1
проблема с вводом даты.
    #39252414
oskasmile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе утро!

Подскажите пожалуйста, как сделать проверку на поле дата, настроен валидатор и маска ввода даты, но когда вводят просто один (к примеру ошиблись), падает в ошибку.

Вот код который для проверки на поле дата окончания работ. вот на эту строку и ругается

КОД:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
protected void endwork_TextChanged(object sender, EventArgs e)
    {
        //Проверка даты предыдущего ТО, если она меньше текущей даты то вводить данных разрешено, если больше, то очищается и занова
        if (endwork.Text != "__.__.____")
        {
            if (Convert.ToDateTime(endwork.Text) >= Convert.ToDateTime(startwork.Text))
            {
                lblmes.Visible = false;
                worksdate.Attributes.Add("class", "form-group");
            }
            else
            {
                endwork.Text = "";
                lblmes.Visible = true;
                lblmes.Text = "Неверная дата окончания работ";
                worksdate.Attributes.Add ("class", "form-group has-error");
            }
        }   
    }



Ошибка:

Код: c#
1.
2.
3.
4.
5.
6.
7.
Строка не распознана как действительное значение DateTime. 

Сведения об исключении: System.FormatException: Строка не распознана как действительное значение DateTime.

Ошибка источника:

Строка 140:            if (Convert.ToDateTime(endwork.Text) >= Convert.ToDateTime(startwork.Text))




Подскажите как написать условие, если вводя не дату, а что-то другое в это поле, чтоб не падал в асп ошибку, а писать к примеру сообщение, ввели не правильно дату или что-то типо этого.
...
Рейтинг: 0 / 0
проблема с вводом даты.
    #39252422
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
проблема с вводом даты.
    #39252423
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oskasmile, и для конвертации введённого текста в дату используйте метод DateTime.TryParse, или DateTime.TryParseExact, а не Convert.ToDateTime.
...
Рейтинг: 0 / 0
проблема с вводом даты.
    #39252434
oskasmile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAoskasmile, и для конвертации введённого текста в дату используйте метод DateTime.TryParse, или DateTime.TryParseExact, а не Convert.ToDateTime.

Я по пробовала у меня так не работает, только через convert.

Когда ставлю DateTime.TryParse, или DateTime.TryParseExact

то пишет: ни одна из перегрузок метода tryparse yt ghbybvftn "1" аргументов.
...
Рейтинг: 0 / 0
проблема с вводом даты.
    #39252435
oskasmile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oskasmile,
ой язык не переключила:


ни одна из перегрузок метода tryparse не принимает "1" аргументов.
...
Рейтинг: 0 / 0
проблема с вводом даты.
    #39252437
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oskasmileoskasmile,
ой язык не переключила:


ни одна из перегрузок метода tryparse не принимает "1" аргументов.
Правильно пишет, почитайте документацию о том, как использовать методы DateTime.TryParse и DateTime.TryParseExact.
...
Рейтинг: 0 / 0
проблема с вводом даты.
    #39252470
oskasmile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или хотя бы, как передать ошибку в label, чтоб страница не падала в ошибку=))
...
Рейтинг: 0 / 0
проблема с вводом даты.
    #39252525
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oskasmileИли хотя бы, как передать ошибку в label, чтоб страница не падала в ошибку=))
читай про try{}catch{}
А вот как парсить дату.
...
Рейтинг: 0 / 0
проблема с вводом даты.
    #39252584
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oskasmileИли хотя бы, как передать ошибку в label, чтоб страница не падала в ошибку=))
Ну если в лоб, то как-то так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
protected void endwork_TextChanged(object sender, EventArgs e)
{
    if (endwork.Text == "__.__.____")
    {
        return;
    }
	
    bool dateIsValid;

    // Проверка даты предыдущего ТО, если она меньше текущей даты то вводить данных разрешено, если больше, то очищается и занова
    try     
    {
        dateIsValid = Convert.ToDateTime(endwork.Text) >= Convert.ToDateTime(startwork.Text);
    }
    catch (System.FormatException)
    {
        dateIsValid = false;
    }
	
    if (dateIsValid)
    {
        lblmes.Visible = false;
        worksdate.Attributes.Add("class", "form-group");
    }
    else
    {
        endwork.Text = "";
        lblmes.Visible = true;
        lblmes.Text = "Неверная дата окончания работ";
        worksdate.Attributes.Add ("class", "form-group has-error");		
    }
}
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / проблема с вводом даты.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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