gpt4 book ai didi

c# - 在 asp.net c# 中对 gridview 的列进行排序

转载 作者:太空狗 更新时间:2023-10-29 20:09:16 25 4
gpt4 key购买 nike

谁能告诉函数在 c# asp.net 中对 gridview 的列进行排序。

绑定(bind)到 gridview 的数据来自使用 linq 创建的数据上下文。我想单击列的标题来对数据进行排序。

谢谢!

最佳答案

要做到这一点,您需要做两件事。

  1. 保持排序状态为viewstate(SortDirection and SortExpression)
  2. 根据当前排序状态生成正确的 linq 表达式。

手动处理网格中的 Sorting 事件并使用我编写的这个帮助程序按 SortExpression 和 SortDirection 进行排序:

public static IQueryable<T> SortBy<T>(IQueryable<T> source, string sortExpression, SortDirection direction) {
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);
}

db.Products.SortBy(e.SortExpression, e.SortDirection)

查看 my blog post 关于如何做到这一点:

关于c# - 在 asp.net c# 中对 gridview 的列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/213148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com