Как вынудить ListView показать первую страницу программно

У меня есть разбитый на страницы ASP.NET ListView. Показанные данные фильтрованы, которым может управлять форма. Когда форма фильтра изменяется, я создаю новый запрос и выполняю DataBind.

Проблема однако, когда я перехожу к следующей странице и устанавливаю фильтр, шоу ListView "Никакие данные, была возвращена". Это не странно, потому что после того, как фильтр применяется, существует только одна страница данных.

Таким образом, то, что я хочу сделать, сбрасывается пейджер. Это - правильное решение проблемы? И как я делаю это?

5
задан doekman 17 May 2010 в 13:37
поделиться

2 ответа

Я использую этот прием в моем обработчике нагрузки. Он не сбрасывает пейджер, если количество элементов результата совпадает, но индекс страницы по-прежнему будет действителен, так что я могу смириться с этим пока.

if (IsPostBack)
{
    DataPager pgr = MyListView.FindControl("MyPager") as DataPager;
    if (pgr != null && MyListView.Items.Count != pgr.TotalRowCount)
    {
        pgr.SetPageProperties(0, pgr.MaximumRows, false);
    }
}
9
ответ дан 18 December 2019 в 13:11
поделиться

Если вы знаете, как это сделать, это просто. Я добавил приведенный ниже код в мои onchange -события моего фильтра:

DataPager pager = ListViewReference.FindControl("DataPagerId") as DataPager;
if (pager != null)
{
    pager.SetPageProperties(0, pager.PageSize, true);
}
4
ответ дан 18 December 2019 в 13:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: