使用带有LinqDataSource和分页的标准ASP.NET ListView(使用DataPager),默认显示结果最后一页的最佳方法是什么?
答案 0 :(得分:1)
将当前页面索引设置为页面计数 - 1。
答案 1 :(得分:1)
您需要知道总记录数和页面上显示的记录数。
This有用的帖子向您展示如何获取记录数:
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";
}
有进一步讨论的情况与你的情况类似。
答案 2 :(得分:1)
我从来没有这样做过,但有几个地方我想看看我是否可以进行你想要的改变:数据源的OnSelecting处理程序,ListView的OnPreRender或OnDataBinding,以及DataPager的OnPreRender。基本上,您希望以特殊方式处理!IsPostBack
的情况。我可能会首先查看DataPager,看看是否可以找到有多少页面并将其设置到最后一页。将页面设置为所需页面后,可能需要重新绑定数据源。之后我会为ListView添加一个OnDataBinding处理程序,看看你能做些什么。我怀疑PreRender发生得太晚,ListView没有任何效果和OnSelecting,虽然通过基于表的函数进行过滤很好,但在这种情况下可能不会有太大作用。