首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVCGrid.Net排序问题-排序方向

MVCGrid.Net排序问题-排序方向
EN

Stack Overflow用户
提问于 2015-11-24 12:32:25
回答 2查看 1.2K关注 0票数 4

我正在尝试使用MVCGrid.Net设置一个网格,但是我使用排序的代码在options.sortdirection中出现了一个错误。

代码语言:javascript
复制
 public static void RegisterGrids()
    {
        MVCGridDefinitionTable.Add("CustomerGrid", new MVCGridBuilder<Customer>()
        .WithAuthorizationType(AuthorizationType.AllowAnonymous)
        .AddColumns(cols =>
        {
            cols.Add("Id").WithSorting(false).WithValueExpression(p => p.CustomersID.ToString());
            cols.Add("FirstName").WithHeaderText("First Name")
                .WithValueExpression(p => p.Name);
            cols.Add("Company").WithHeaderText("Company")
                .WithValueExpression(p => p.Company);
        })
        .WithSorting(true, "FirstName")
        .WithRetrieveDataMethod((context) =>
         {
            var options = context.QueryOptions;
            var result = new QueryResult<Customer>();
                using (var db = new Entities())
                {
                    var query = db.Customers.ToList();
                    if (!String.IsNullOrWhiteSpace(options.SortColumnName))
                    {
                        switch (options.SortColumnName.ToLower())
                        {
                            case "name":
                                 query = query.OrderBy(c=>c.Company, options.SortDirection);
                                break;

                        }
                    }
                    result.Items = query;
                }
                return result;
            })
        );
    }

此错误在case语句中的查询中。如有可能,请协助。给出的错误是:

错误1‘'System.Linq.Enumerable.OrderBy(System.Collections.Generic.IEnumerable,’不包含'OrderBy‘的定义,最好的扩展方法重载System.Collections.Generic.List System.Func,System.Collections.Generic.IComparer)有一些无效的参数C:\MVC Tests\MVCGrida\MVCGrida\App_Start\MVCGridConfig.cs 39 46 MVCGrida

EN

回答 2

Stack Overflow用户

发布于 2016-05-06 16:32:19

我也有同样的问题。我不确定本教程中的实体框架示例返回的内容是否与标准的IEnumerable不同,或者它是否只是本教程中的一个错误。不管是哪种情况,我都必须手动处理我的情况下的排序。不是世界上最漂亮的,但很管用。

例如:

代码语言:javascript
复制
switch (options.SortColumnName.ToLower())
{
    case "name":
           if (options.SortDirection == SortDirection.Asc)
                 query = query.OrderBy(c=>c.Company);
           else if (options.SortDirection == SortDirection.Dsc)
                 query = query.OrderByDescending(c=>c.Company);    
            break;                                 
 }

希望这能有所帮助。

票数 3
EN

Stack Overflow用户

发布于 2020-08-10 21:15:23

我创建了一个扩展方法来匹配文档中的内容。

代码语言:javascript
复制
private static IEnumerable<TSource> OrderBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, SortDirection sort)
    {
        switch (sort)
        {
            case SortDirection.Asc:
                return source.OrderBy(keySelector);

            case SortDirection.Dsc:
                return source.OrderByDescending(keySelector);

            case SortDirection.Unspecified:
            default:
                return source;
        }
    }

我就是这样用的

代码语言:javascript
复制
eList.OrderBy(x => x.Field, options.SortDirection);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33893817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档