ASP.NET分页最佳实践

3

我正在使用linq to sql获取我的数据,当我在数据网格上设置页面大小并且用户选择第二页时,我会得到一个postback并重新读取所有数据以显示第二页。我怀疑应该有更好的方法来做到这一点,一种只读取我需要显示的数据的方法。我想知道是否有任何代码示例...

3个回答

3

2

这真的取决于数据。Google无法在返回一百万个页面的搜索上使用客户端分页。(尽管,听起来他无论如何都会从数据库中加载整个集合) - JerSchneid
当然。从数据库中卸载负载将自然地增加项目的其他部分的负载;工作必须在某个地方完成。客户端分页将一次性增加网络流量,并且大大减少数据库负载 - 但您始终必须考虑网络负载增加了多少,并决定是否值得这样做。 - Tomas Aschan

0
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"  />

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接