Bonjour,
J'ai une GridView et sur l'event OnSorting j'ai la fonction suivante :
Ma question est : Comment je fais pour "descendre" d'un cran supplémentaire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 protected void gvOrders_Sorting(object sender, GridViewSortEventArgs e) { //Récupération de la propriété sur laquelle triée System.Reflection.PropertyInfo property = typeof(OrderBO).GetProperty(e.SortExpression); //Si type SimpleBO on prend le code comme paramètre de tri if (property.PropertyType == typeof(SimpleBO)) { property = typeof(SimpleBO).GetProperty("Code"); } //Test de l'état courant de la grille if (this.MyModule.OrderFacade.CurrentGridViewSorting == "DESC") { //Mémorisation de l'état actuel de la grille this.MyModule.OrderFacade.CurrentGridViewSorting = "ASC"; //Appel de la liste courante triée comme souhaitée par l'utilisateur gvOrders.DataSource = this.MyModule.OrderFacade.CurrentOrdersList.OrderBy(order => typeof(OrderBO).InvokeMember(property.Name, System.Reflection.BindingFlags.GetProperty, null, order, null)); //Actualisation des données gvOrders.DataBind(); } else { this.MyModule.OrderFacade.CurrentGridViewSorting = "DESC"; gvOrders.DataSource = this.MyModule.OrderFacade.CurrentOrdersList.OrderByDescending(order => typeof(OrderBO).InvokeMember(property.Name, System.Reflection.BindingFlags.GetProperty, null, order, null)); gvOrders.DataBind(); }
Je veux dire que sur le `typeof(OrderBO).GetProperty(e.SortExpression)` si c'est un type simple (string, int, datetime, etc) tout se passe bien, mais si c'est un objet custom il faudrait que je fasse un `typeof(OrderBO).GetProperty(e.SortExpression).GetProperty("Code")`
En gros en debug sur la property récupérée je vois `OrderBO.Code` alors qu'il me faudrait par exemple `OrderBO.Customer.Code`.
Une suggestion ? Merci d'avance.
Partager