代码之家  ›  专栏  ›  技术社区  ›  Ali Shafai

ASP.NET分页最佳实践

  •  3
  • Ali Shafai  · 技术社区  · 17 年前

    我使用linq-to-sql获取数据,当我在数据网格上设置页面大小,用户选择第2页时,我得到一个回发,我重新读取所有数据以显示第二页。我怀疑应该有更好的方法来做这件事,一种最终只读取我需要显示的数据的方法。我想知道是否有代码示例…

    3 回复  |  直到 13 年前
        1
  •  2
  •   Tomas Aschan    17 年前

    如果你想要 真的? 减轻数据库负载,看看 client-side paging …

        2
  •  3
  •   Zhaph - Ben Duguid    17 年前

    你真的应该看看 Skip 和 Take 方法。

    看斯科特古的帖子 LINQ to SQL (Part 3) 并在页面中搜索“分页我们的查询结果”—这有一些很好的示例。

    或者,如果使用 LinqDataSource control ,并且您正在与一个SQL 2005或2008数据库交谈,您应该自动获得这种行为。 LINQ to SQL (Part 5) 涵盖这一点。

        3
  •  0
  •   Andrew Barber Eric Lafortune    13 年前
    public static IEnumerable<new_log> Search(dbDataContext db, int _user,int _pageNumber, int _rowCountPerPage)
    {
    var query = (
                       from p in db.new_log
                      where p.created_by == (_user < 0 ? p.created_by : _user)  orderby p.id descending
                      select p 
                      )
    
                  .Skip(_pageNumber * _rowCountPerPage).Take(_rowCountPerPage); 
    return query;
    
    }
    

    要点:

    1.为了提高性能,我们必须禁用页面或控制级别中的视图。

    <%@ Page Language="C#" EnableViewState="false" %> OR <asp:GridView
       EnableViewState="false" runat="server"  />
    

    2.尝试编写单个查询以获取结果。

    http://forums.asp.net/p/1779601/5120205.aspx/1?p=True&t=634814907594742030

    推荐文章