Как отобразить IEnumerable <int>в JQGrid - PullRequest
0 голосов
/ 01 апреля 2012

Я пытаюсь отобразить значения IEnumerable int в JQGrid. Как видно ниже, столбец gmu имеет значение IEnumerable int, но не отображается правильно в сетке. Вместо значений это то, что показано в сетке для этого столбца gmu:

System.Linq.Enumerable + WhereSelectEnumerableIterator 2[<>f__AnonymousType2 5 [System.Int32, System.String, System.Int32, System.Int32, System.Int32], System.Int32]

var result = from x in test
                     group x by new { x.dau, x.population_estimate, x.year } into p
                     select new
                     {                             
                         dau = p.Key.dau,
                         population_estimate = p.Key.population_estimate,
                         year = p.Key.year,
                         gmu = p.Select(x => x.gmu)
                     };          


        int pageIndex = Convert.ToInt32(page) - 1;
        int pageSize = rows;
        int totalRecords = results.Count();
        int totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize);


        var pageResults = result.Skip(pageIndex * pageSize).Take(pageSize);

        var jsonData = new
        {
            total = totalPages,
            page,
            records = totalRecords,
            rows = (
                from pageResult in pageResults
                select new
                {
                    //id = pageResult.id,
                    cell = new[] { 
                                    pageResult.year.ToString(),
                                    pageResult.dau.ToString(), 
                                    pageResult.gmu.ToString(),                             
                                    pageResult.population_estimate.ToString(),                                       
                    }
                }).ToArray()
        };          

1 Ответ

1 голос
/ 01 апреля 2012

Вам просто нужно добавить «ToArray ()» после «Select» в вашем операторе Linq.

gmu = String.Join<int>(", ", p.Select(x => x.gmu))

То, что происходит, заключается в том, что при обработке объекта IEnumerable .NET неявно вызывает функцию «ToString ()» (она недостаточно умна, чтобы фактически перечислять объект по собственной инициативе), что приводит к тому, что вы видите .

...