ASP.NET GridView Paging utilizando la consulta Linq como fuente de datos
Estoy buscando una manera de hacer paginación con un GridView cuando configuro el origen de datos en tiempo de ejecución usando una consulta linq. Aquí está mi código:
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();
Tengo la cuadrícula configurada para permitir la paginación, pero aparece un error que dice que el evento PageIndexChanging no se ha manejado. Busqué alrededor y encontré lo siguiente:
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
Pero eso funciona bien cuando usa una tabla de datos pero no con linq. Si agrego un rebind en el evento, debe solicitar 7000 registros, lo que puede ser un poco lento. ¿Alguien sabe cómo arreglar la paginación al usar linq como este?