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?

Respuestas a la pregunta(1)

Su respuesta a la pregunta