代码之家  ›  专栏  ›  技术社区  ›  Ryan Versaw

默认为列表视图中的最后一页

  •  3
  • Ryan Versaw  · 技术社区  · 17 年前

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

    3 回复  |  直到 17 年前
        1
  •  1
  •   Kon    17 年前

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

        2
  •  1
  •   DOK    17 年前

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

    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";
    }
    

    这里还进一步讨论了一种听起来与你类似的情况。

        3
  •  1
  •   tvanfosson    17 年前

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