Gridview со связанным параметром DateTime из Textbox генерирует исключение DateTimeException при сортировке - PullRequest
1 голос
/ 24 октября 2011

У меня проблемы с ASP.NET GridView.

GridView настроен на извлечение строк из хранимой процедуры через SqlDataSource.Gridview имеет BoundField, который заполняет параметр DateTime для хранимой процедуры из текстового поля ASP.NET в форме.

Когда я ввожу недопустимый DateTime в текстовое поле ASP.NET, а затем щелкните любой столбецGridView для сортировки GridView генерирует исключение FormatException в своем событии PreRender: «недопустимый символ в позиции 0»

Как я могу перехватить или остановить пользователя от сортировки GridView, когда в TextBox есть недопустимый DateTime?

Я уже пробовал валидаторы форм, но, похоже, они не учитывают клики GridView.Одна мысль, которую я имел, состояла в том, чтобы выполнить привязку и сортировку данных вручную, чтобы я мог остановить плохую сортировку в процессе.Есть мысли?

1 Ответ

1 голос
/ 24 октября 2011

Я решил это, расширив событие Textbox.OnTextChanged следующим образом:

protected void tbTo_TextChanged(object sender, EventArgs e)
{
    DateTime temp;

    if(DateTime.TryParse(tbTo.Text,out temp)==false)
    {
        tbTo.Text = "";
    }
}

Это срабатывает до сортировки GridView!Проблема решена.

...