[英]Grid view sorting for particular column
我想要有關Asp.net C#中GRID VIEW中特定列排序的代碼。 當我在ASC中對一列進行排序時,當對第二列進行排序並嘗試對其進行排序時,它將其視為DESC。 我要為每列單獨的ASC DESC順序。
用於分類
保持排序狀態為viewstate(SortDirection和SortExpression)您將基於當前排序狀態生成正確的linq表達式。 手動處理網格中的Sorting事件,並使用我編寫的此幫助程序按SortExpression和SortDirection進行排序:
公共靜態IQueryable SortBy(IQueryable源,字符串sortExpression,SortDirection方向){if(source == null){throw new ArgumentNullException(“ source”); }
string methodName = "OrderBy";
if (direction == SortDirection.Descending) {
methodName += "Descending";
}
var paramExp = Expression.Parameter(typeof(T), String.Empty);
var propExp = Expression.PropertyOrField(paramExp, sortExpression);
// p => p.sortExpression
var sortLambda = Expression.Lambda(propExp, paramExp);
var methodCallExp = Expression.Call(
typeof(Queryable),
methodName,
new[] { typeof(T), propExp.Type },
source.Expression,
Expression.Quote(sortLambda)
);
return (IQueryable<T>)source.Provider.CreateQuery(methodCallExp);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.