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

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

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

最佳答案

我在负载处理程序中使用了这种技巧。如果结果项的数量相同,它将不会重置寻呼机,但是页面索引仍然有效,因此我现在就可以使用它。

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

09-04 17:35