2009-01-22 6 views
1

J'ai obtenu une classe nous allons l'appeler Blah. J'utilise ObjectDataSource pour obtenir les données de la base de données et la valeur est la lier à la propriété de Blah par exemple, la colonne Foo est Blah.Foo dans ma classe. Je peux lier ObjectDataSource avec une liste de Blah à un gridview mais je ne peux pas le rendre triable puisque la source de données n'est pas datatable. Quelqu'un at-il un lien ou un tutoriel sur la façon de rendre l'objet à trier pour le contrôle comme gridview.ASP.net: Comment faire la liste des objets triables lorsque se lient à contrôler tels que GridView?

merci

Jack

Répondre

1

Tout d'abord, vous pouvez utiliser la propriété AllowSorting du gridview avec SortExpression sur vos champs. Voici un tutorial

Deuxièmement, vous pourriez fait une liste générique de Blah puis appelez .Sort()

List<Blah> test = new List<Blah>; 
test.AddRange(ObjectDataSource); 
test.Sort(); 

msdn information

Troisième, vous pouvez trier les gridview directement à partir d'une expression comme

CustomersGridView.Sort(expression, direction); 

link

0

Vous devez implémenter les interfaces IComparable. Il peut y avoir d'autres interfaces que vous devez implémenter, mais elles seront toutes dans la même veine.

0

Vous devez implémenter Icomparable, puis passer l'expression de tri de la grille à votre méthode de tri personnalisée.

Imar Spaanjaars a un beaux exemples de tutoriel et le code de la création de collections d'objets métier triables que vous pouvez lier à des contrôles asp.net

0

Vous voudrez peut-être essayer de trier votre liste à l'aide des délégués anonymes:

List<YourObject> MyList = new List<YourObject>(); 

MyList.Sort(delegate(YourObject o1, YourObject o2) 
{ return o1.SomeProperty.CompareTo(o2.SomeProperty);}); 
En savoir plus sur

anonyme et délégué: MSDN

Questions connexes