簡體   English   中英

特定列的網格視圖排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM