ASP.NET GridView la Pagination à l'aide de Linq requête comme source de données
Je suis à la recherche d'une façon de faire de la pagination avec un GridView lorsque j'ai mis la source de données au moment de l'exécution à l'aide d'une requête linq. voici mon 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();
J'ai la grille de jeu pour permettre d'échange, mais j'obtiens une erreur qui dit que le PageIndexChanging événement n'a pas été traitée. J'ai cherché et trouvé ce qui suit:
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
Mais qui fonctionne bien lorsque vous utilisez un datatable, mais pas avec linq. Si j'ajoute une reliaison dans l'événement, il a pour actualiser 7000 enregistrements qui peut être un peu lent. Personne ne sait comment résoudre la pagination lors de l'utilisation de linq comme ça?
OriginalL'auteur ecspot | 2010-08-27
Vous devez vous connecter pour publier un commentaire.
Une solution possible:
http://www.devtoolshed.com/content/gridview-objectdatasource-linq-paging-and-sorting
http://www.dbtutorials.com/display/linq-to-sql-paging-cs.aspx
Autre possibilité ici:
Utiliser LINQ Source de Données comme décrit par Scott Guthrie (le père de l'ASP)
http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx
Si tu veux suivre cette voie, vous aurez de mauvaises performances. Ce n'est pas la bonne façon de le faire... Vous devriez utiliser LINQ Source de Données, par exemple, que vous donne le soutien efficace de la pagination.
Je ne peux pas lier plusieurs tables à l'aide de la linqdatasource sinon, je venais tout juste de se lier à qui. connaissez-vous un moyen d'utiliser le linqdatasource à faire cette requête? Les données proviennent de 4 tables différentes.
Vous avez certainement peut. Lire ceci: weblogs.asp.net/scottgu/archive/2007/09/07/.... Aller à la présente partie: à l'Aide de la <asp:LinqDataSource> choisissez l'Événement
à l'aide de la sélection de l'événement sur linqdatasource d'ajouter personnalisé requête a fonctionné comme un charme. Merci pour l'aide.
OriginalL'auteur Leniel Maccaferri