使用Linq查询作为数据源的ASP.NET GridView分页

当我在运行时使用linq查询设置数据源时,我正在寻找一种使用GridView进行分页的方法.这是我的代码:

ETDataContext etdc = new ETDataContext();
var accts = from a in etdc.ACCOUNTs
            orderby  a.account_id
            select new
            {
                Account = a.account_id,
                aType = a.SERVICEs.FirstOrDefault().SERVICE_TYPE.service_type_desc,
                name = a.SERVICEs.FirstOrDefault().service_name,
                Letter_dt = a.create_dt,
                PrimAccthldr = a.PEOPLE.first_name + " " + a.PEOPLE.middle_name + " " + a.PEOPLE.last_name
             };
GridView1.DataSource = accts;
GridView1.BindData();

我已将网格设置为允许分页,但是出现一个错误,提示尚未处理PageIndexChanging事件.我四处搜寻,发现以下内容:

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

但是,当您使用数据表而不与linq一起使用时,效果很好.如果我在事件中添加了重新绑定,它必须重新查询7000条记录,这可能会有点慢.有人知道像这样使用linq时如何解决分页吗?

解决方法:

可能的解决方案:

http://www.devtoolshed.com/content/gridview-objectdatasource-linq-paging-and-sorting

http://www.dbtutorials.com/display/linq-to-sql-paging-cs.aspx

这里的其他可能性:

使用LINQ数据源,如Scott Guthrie(ASP之父)所述.
http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx

上一篇:javascript-js数据表中的click事件(分页中断)


下一篇:内存管理——分页机制的启用