Cette séquence que j'ai créé fonctionne bien dans LINQPadPourquoi cette séquence d'entités ne triera-t-elle pas dans GridView après la liaison?
IQueryable<AccessRequest> filteredRows1;
// retrieve the last record of each request in its request history
filteredRows1 = from req in AccessRequestSet
group req by req.TaskReferenceId
into g
let topReq = g.OrderByDescending(r => r.UpdateDate).FirstOrDefault()
select topReq;
IQueryable<AccessRequest> filteredRows =
filteredRows1.Where(o => o.Status == "Requested");
Je veux trier les entités en question par le terrain, RequestedReleaseTime.
filteredRows.OrderBy(p => p.RequestedReleaseTime);
Encore une fois, je suis un regroupement par DateTime avec succès, puis le tri par un autre DateTime avec succès, confirmé dans LINQPad. Je puis ajouter cela comme une source de données et se lient à mon GridView:
gvRequests.DataSourceID = string.Empty;
gvRequests.DataSource = filteredRows;
gvRequests.DataBind();
J'ai même mis AllowSorting = « true » et a ajouté cette ligne à trier.
gvRequests.Sort("RequestedReleaseTime", SortDirection.Ascending);
J'ai essayé cette dernière ligne avant et après le DataBind en vain. Quel est le problème avec cette approche? Dois-je faire tout cela dans les événements OnSorted ou OnSorting? Note: J'ai essayé cela et j'ai obtenu StackOverflowException, ce qui m'a rappelé que je devrais vous demander les gars. Merci à des millions pour toute direction ou aide que je reçois.
Bon point, comme les cordes, ils sont immuables. J'utilise en fait la requête modifiée dans mon application. Le code ci-dessus vient de ce que j'ai fait dans LINQPad pour le tester. J'espérais qu'il y avait une solution évidente. – Blanthor
@Blanthor: Si vous définissez la source de données sur la requête ordonnée (ce que dans mon exemple est filteredRowOrdered dans mon exemple), elle doit être correctement configurée. – StriplingWarrior