2
我想要关于在Asp.net C#中的网格视图中对特定列进行排序的代码。 当我在ASC中对一列进行排序,并在第二列进行排序并尝试对其进行排序时,将其作为DESC进行排序。我想为每个列单独使用一个ASC DESC命令。特定列的网格视图排序
我想要关于在Asp.net C#中的网格视图中对特定列进行排序的代码。 当我在ASC中对一列进行排序,并在第二列进行排序并尝试对其进行排序时,将其作为DESC进行排序。我想为每个列单独使用一个ASC DESC命令。特定列的网格视图排序
对于排序
保持排序状态是视图状态(SortDirection和的SortExpression) 您生成基于当前排序状态正确LINQ表达式。 手动处理事件排序在网格中,并使用这个帮手,我写的的SortExpression和SortDirection进行排序:
公共静态的IQueryable SortBy(IQueryable的来源,字符串的SortExpression,SortDirection方向){ 如果(来源== NULL){ 抛出新的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);
}
你可以添加一些代码的这个问题? –