Hey, I'm trying to sort a custom data grid of columns based on what the user clicked. The variable "sort" is being passed to the controller but is just a string saying what column is to be sorted.
I need to get the Type of that column to be used in a LambdaExpression... heres the 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);
As you can see on line #3 where I pass the delegate Func works from for a column that has a Type of int, but that will change dynamically depending on what column was clicked.
How do I solve this?
Thanks!