【问题标题】:Default to last page in a ListView默认为 ListView 中的最后一页
【发布时间】:2010-09-20 22:59:48
【问题描述】:

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

【问题讨论】:

    标签: asp.net listview pagination


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      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。

      【讨论】:

      • 是的,但是在哪里可以找到页数,在哪里可以设置页面索引?
      猜你喜欢
      • 2017-03-04
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多