我有以下自定義擴展方法,它允許您動態指定哪個字段將被排序 - 它用於綁定到一個JQuery數據表。修改擴展方法以允許ThenBy
public static IQueryable<T> OrderByField<T>(this IQueryable<T> q, string SortField, string SortDirection)
{
var param = Expression.Parameter(typeof(T), "p");
var prop = Expression.Property(param, SortField);
var exp = Expression.Lambda(prop, param);
var method = SortDirection == "asc" ? "OrderBy" : "OrderByDescending";
var types = new Type[] { q.ElementType, exp.Body.Type };
var mce = Expression.Call(typeof(Queryable), method, types, q.Expression, exp);
return q.Provider.CreateQuery<T>(mce);
}
然後它被調用如下:.OrderByField("ColumnName", "asc")
其中兩個params是字符串。
我希望修改這個函數以允許「thenby」被立即調用,但是我不確定如何做到這一點。
任何幫助非常感謝。
您應該對'SortDirection'使用一個枚舉。 – SLaks
這些值直接從AJAX請求填充。 MVC能綁定到枚舉嗎? –
確保也查看最近的重複答案。 –