Наиболее вероятная причина, по которой вы получаете только пробелы, иногда заключается в том, что вы находитесь на странице, за которой поиск будет давать результаты.
Например: : вы находитесь на странице 10 нефильтрованных результатов, нажимаете Search,
и получаете результаты только на 5 страницах. Таким образом, страница, которую вы сейчас просматриваете (10), пуста.
После выполнения оператора LINQ вам необходимо сбросить GridView
на первую страницу.
Вторая (возможная) проблема заключается в том, что вы не можете гарантировать порядок всех обработчиков событий. (См. Страница жизненного цикла .) Т.е. , вы не можете рассчитывать на стрельбу LinqDataSource_OnSelecting
или btnSearch_Click
первыми, и у вас есть DataBind
в обработчике Click
. Удалите обработчик событий btnSearch_Click
(или оставьте его пустым) и используйте вместо него LinqDataSource.OnSelected
, который обязательно сработает после LinqDataSource.OnSelecting
:
protected void LinqDataSource_Selected(object sender, LinqDataSourceStatusEventArgs e) {
gridView.DataBind();
gridView.PageIndex = 0; // back to beginning when searching
}