如何在网格视图中显示大量数据而不会导致页面崩溃?

时间:2012-04-14 00:27:42

标签: asp.net sql linq

我正在使用linq来连接数据库,这是我第一次从数据库中显示大量数据,所以我不知道如何处理它。你能给我一个提示吗?谢谢!

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!Page.IsPostBack)

        rebind();
    }

    private void rebind()
    {
        using ( var db = new linqDataContext())
        {
            GridView1.DataSource = db.Orders.Select(p => new { p.OrderID, p.CustomerID, p.ShipName, p.ShipCity }).ToList();
            GridView1.DataBind();
        }
    }

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        rebind();
    }
}

4 个答案:

答案 0 :(得分:5)

提示:不要在Web应用程序中一次显示大量数据。使用分页控件一次只能从数据库中检索和显示几行。

答案 1 :(得分:2)

您是否考虑过分页?您应该能够将LINQ结果绑定到Gridview数据源。我相信你需要做的就是在gridview上设置pagesize它会起作用。

之前我已经完成了但是我实际上在代码后面跟踪页面(和页面大小)并且让LINQ像  gv.DataSource = (From s In Results Select s).Skip(pageSize * (currPage-1)).Take(pageSize)

答案 2 :(得分:2)

对于大量数据的分页,您需要使用自定义分页。

自定义分页可确保一次只从数据库中检索特定数据页所需的精确记录集。

以下链接详细说明了如何使用ObjectDataSource控件执行自定义分页: http://msdn.microsoft.com/en-us/library/bb445504.aspx

答案 3 :(得分:1)

<强>寻呼即可。看看两个令人惊奇的基于JQuery的表(处理很多其他的东西,对你来说,如排序和过滤):