我正在尋找一種方法來使用linq查詢在運行時設置數據源時使用GridView進行分頁。這裏是我的代碼:使用Linq查詢作爲數據源的ASP.NET 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這樣的分頁問題?
描述的源不要使用DAL或objectdatasource對象是。只需簡單地用linq創建一個匿名類型,然後直接綁定到網格。 – ecspot 2010-08-27 02:48:11
如果想按照這種方式,你會有糟糕的表現。這不是這樣做的正確方式......您應該使用LINQ數據源,例如,爲您提供高效分頁支持。 – 2010-08-27 02:57:11
我無法使用linqdatasource鏈接多個表,否則我只會綁定到那個。你知道一種使用linqdatasource來做這個查詢的方法嗎?數據來自4個不同的表格。 – ecspot 2010-08-27 03:01:53