首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kendo Grid:按列表中的第一个元素分组

Kendo Grid:按列表中的第一个元素分组
EN

Stack Overflow用户
提问于 2014-08-04 16:45:31
回答 2查看 262关注 0票数 0

所以我正在使用一个Kendo网格,以及它的头是如何分组的。我目前使用的一个选项是,网格通过检查列表中的每个元素来获取我的列表和排序组。所以我得到了这样的东西:

->Roles: ->Roles:测试人员,经理,团队领导 ->Roles:测试器 ->Roles:首席执行官,Tester ->Roles:团队领导,首席执行官

(你知道了)。这是因为我的数据库模型中的“角色”在列表中(因为一个人可以有多个角色),而Kendo正在比较列表中的每个元素。但是,我希望它按每个人列表中的第一个元素分组,这样我就可以得到如下内容:

->Roles:测试器 ->Roles:经理 ->Roles:团队领导 ->Roles: ->Roles:首席执行官

等等,有人知道怎么做吗?目前我正在做

代码语言:javascript
复制
group: {
                field: "RoleName",
                aggregates: [
                    { field: "ResourceName", aggregate: "count" },
                    { field: "OrganizationName", aggregate: "count" }
                ]
            },

我认为我想做更多的事情,比如:

代码语言:javascript
复制
group: {
                field: "RoleName.get(0)",
                aggregates: [
                    { field: "ResourceName", aggregate: "count" },
                    { field: "OrganizationName", aggregate: "count" }
                ]
            },

但是,我对Kendo还不太熟悉,不知道正确地执行此操作的语法。谢谢大家的帮助!

编辑:我应该补充一点,因为许多将要使用IE8的人仍然需要/2012.2.710支持,所以我使用的是从/2012.2.710导入的Kendo,而不是最新的更新

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-08 18:34:03

*编辑我的答案,假设用户将数据加载到函数之外,并且不对数据进行硬编码。

尝试在模式中使用解析函数,

我将在项目中添加您应该拥有的内容,例如:

代码语言:javascript
复制
$('.grid').kendoGrid({
  dataSource: {
    schema: {
      parse: function(data) {
        for (var i = 0; i < data.length; i++) {
          data[i].firstWord = data[i].name.split(' ')[0];
        }
        return data;
      }
    }
    group: {
      field: "firstWord"
    }
  },
  columns: [{
    field: "name"
  }, {
    field: "firstWord",
    hidden: true,
    groupHeaderTemplate: "#=value#"
  }]
});

票数 1
EN

Stack Overflow用户

发布于 2016-06-08 13:23:58

这只是对Ryan Hoyle answer's example的一个修正

代码语言:javascript
复制
var grid = $('#grid').kendoGrid({
  dataSource: {
    data: [{
      name: 'Hello world'
    }, {
      name: 'Hello John Doe'
    }, {
      name: 'Hello Jane Doe'
    }, {
      name: 'Bye Jane Doe'
    }, {
      name: 'Bye World'
    }],
    schema: {
      parse: function(data) {
        data.forEach(d => d.firstWord = d.name.split(' ')[0]);
        return data;
      }
    },
    group: {
      field: "firstWord"
    }
  },
  columns: [{
    field: "name"
  }, {
    field: "firstWord",
    hidden: true,
    groupHeaderTemplate: "#=value#"
  }]
}).data().kendoGrid;
代码语言:javascript
复制
<link href="http://kendo.cdn.telerik.com/2016.2.607/styles/kendo.common.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2016.2.607/js/kendo.all.min.js"></script>

<div id="grid"></div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25123588

复制
相关文章

相似问题

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