如何强制ListView以编程方式显示第一页

doe*_*man 5 asp.net listview pager

我有一个分页的ASP.NET ListView.显示的数据被过滤,可以通过表单控制.当筛选器表单更改时,我创建一个新查询,并执行DataBind.

但问题是,当我转到下一页并设置过滤器时,ListView显示"没有返回数据".这并不奇怪,因为在应用过滤器之后,只有一页数据.

所以我想做的是重置寻呼机.这是解决问题的正确方法吗?我该怎么做?

小智 9

我在我的Load处理程序中使用了这个hack.如果结果项的数量相同,它将不会重置寻呼机,但页面索引仍然有效,所以我现在可以使用它.

if (IsPostBack)
{
    DataPager pgr = MyListView.FindControl("MyPager") as DataPager;
    if (pgr != null && MyListView.Items.Count != pgr.TotalRowCount)
    {
        pgr.SetPageProperties(0, pgr.MaximumRows, false);
    }
}
Run Code Online (Sandbox Code Playgroud)


doe*_*man 6

如果你知道怎么做,这很简单。我将下面的代码添加到我onchange的过滤器的 -events 中:

DataPager pager = ListViewReference.FindControl("DataPagerId") as DataPager;
if (pager != null)
{
    pager.SetPageProperties(0, pager.PageSize, true);
}
Run Code Online (Sandbox Code Playgroud)