2
Asp.net C#의 GRID VIEW에서 특정 열을 정렬하는 코드가 필요합니다. ASC에서 한 열을 정렬 할 때와 두 번째 열로 이동하여 정렬하려고하면 DESC로 간주됩니다. 각 열에 대해 별도의 ASC DESC 순서를 원합니다. 정렬 상태를 유지특정 열의 격자보기 정렬
을 정렬
Asp.net C#의 GRID VIEW에서 특정 열을 정렬하는 코드가 필요합니다. ASC에서 한 열을 정렬 할 때와 두 번째 열로 이동하여 정렬하려고하면 DESC로 간주됩니다. 각 열에 대해 별도의 ASC DESC 순서를 원합니다. 정렬 상태를 유지특정 열의 격자보기 정렬
을 정렬
이 viewstate가있다 (SortDirection 및 SortExpression) 당신은 현재의 정렬 상태에 따라 올바른 LINQ 식을 생성합니다. 수동으로 그리드에 정렬 이벤트를 처리하고 난 SortExpression 및 SortDirection을 기준으로 정렬 쓴이 도우미 사용
공공 정적에 IQueryable SortBy (된 IQueryable 소스, 문자열 sortExpression, SortDirection 방향) { 을 경우 (소스 == NULL) { 새로운 ArgumentNullException ("source") throw; }
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);
}
당신이 질문에 대한 코드의 일부를 추가 할 수 있습니까? –