ASP.NET GridView Paging mit Linq-Abfrage als Datenquelle

Ich suche nach einer Möglichkeit, mit einer GridView ein Paging durchzuführen, wenn ich die Datenquelle zur Laufzeit mithilfe einer Linq-Abfrage einstelle. hier ist mein code:

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();

Ich habe das Raster so eingestellt, dass Seitenwechsel zugelassen werden, aber es wird eine Fehlermeldung angezeigt, dass das PageIndexChanging-Ereignis nicht behandelt wurde. Ich habe mich umgesehen und folgendes gefunden:

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

Aber das funktioniert gut, wenn du eine datatable verwendest, aber nicht mit linq. Wenn ich im Ereignis eine Neu-Bindung hinzufüge, muss es 7000 Datensätze neu anfordern, was etwas langsam sein kann. Weiß jemand, wie man das Paging bei Verwendung von Linq wie folgt behebt?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage