Hey, j'essaie de trier une grille de données personnalisée de colonnes en fonction de ce que l'utilisateur a cliqué. La variable "sort" est transmise au contrôleur mais est juste une chaîne indiquant quelle colonne doit être triée.C# MVC: Func <Table1, "type d'exécution"> Comment obtenir un type dynamique?
Je dois obtenir le type de cette colonne à utiliser dans un LambdaExpression ... Heres le code
ParameterExpression param = Expression.Parameter(typeof(Table1), "x");
MemberExpression memberExp = Expression.Property(param, sort);
var lambdaExp = Expression.Lambda<Func<Table1, int>>(memberExp, new ParameterExpression[] { param });
if (bool.Parse(Session["sort"].ToString()))
sortedKeys = keys.OrderBy(lambdaExp).Skip((currentPage - 1) * _pageSize).Take(_pageSize);
else
sortedKeys = keys.OrderByDescending(lambdaExp).Skip((currentPage - 1) * _pageSize).Take(_pageSize);
Comme vous pouvez le voir sur la ligne n ° 3 où je passe le délégué Func travaille à partir d'un colonne qui a un type d'int, mais qui va changer dynamiquement en fonction de quelle colonne a été cliquée.
Comment résoudre ce problème?
Merci!