3

使用具有 LinqDataSource 和启用分页(使用 DataPager)的标准 ASP.NET ListView,默认显示最后一页结果的最佳方式是什么?

4

3 回答 3

1

我从来没有这样做过,但是有几个地方我会查看是否可以进行您想要的更改:数据源的 OnSelecting 处理程序、ListView 的 OnPreRender 或 OnDataBinding 以及 DataPager 的 OnPreRender。本质上,您希望以!IsPostBack一种特殊的方式处理这种情况。我可能会先查看 DataPager,看看您是否可以找出有多少页并将其设置为最后一页。将页面设置为所需的页面后,您可能需要重新绑定数据源。之后,我会考虑为 ListView 添加一个 OnDataBinding 处理程序,看看你可以在那里做什么。我怀疑 PreRender 发生得太晚,ListView 没有任何效果,而 OnSelecting 虽然很适合通过基于表的函数进行过滤,但在这种情况下可能不会有多大好处。

于 2008-11-06T04:05:51.503 回答
1

将当前页索引设置为页数 - 1。

于 2008-11-05T20:26:30.340 回答
1

您需要知道总记录数和页面上显示的记录数。

这篇有用的帖子向您展示了如何获取记录数:

private LinqDataSourceSelectEventArgs args;
protected void LinqDataSource1_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
     args = e;           
     e.Result = new Database().Table.Whatever...                      
}

protected void LinqDataSource1_Selected(object sender, LinqDataSourceStatusEventArgs e)
{
     this.label1.Text = args.Arguments.TotalRowCount + " records";
}

那里进一步讨论了与您的情况相似的情况。

于 2008-11-05T20:41:19.500 回答