以编程方式更改Kendo Grids DataSource组

时间:2015-12-08 00:09:24

标签: jquery typescript kendo-grid

如何在呈现Kendo网格后以编程方式更改组?我在TypeScript中尝试过这样的函数:

changeGroupBy() {
    var group = $('#ddGroupBy').val();
    var grid = $('#objectsListGrid').data('kendoGrid');
    var options = grid.options;

    options.dataSource = this.objectsList;
    options.dataSource.group = group;
    grid.refresh();
} 

当我使用上面的代码时,我得到一个错误,即this.group不是函数?

3 个答案:

答案 0 :(得分:1)

您应该使用:dataSource.group({field:“yourField”});

如此处所述:http://docs.telerik.com/kendo-ui/api/javascript/data/datasource#methods-group

答案 1 :(得分:0)

事实证明,在没有首先获得对网格的引用及其选项然后销毁网格并重建网格之后,您不能仅在网格渲染之后设置组属性。这些是我所做的步骤,它正常工作:

    var grid = $('#objectsListGrid').data('kendoGrid');

    this.getObjects(this.projectNumber);
    var options = grid.options;


    options.dataSource = this.objectsList;
    options.dataSource.group({ field: group });
    grid.destroy();

    $('#objectsListGrid').empty().kendoGrid(options);
    grid.dataSource.read();

答案 2 :(得分:0)

看起来现在有一种更好的方法。渲染网格后,只需在下面使用

$('#objectsListGrid').data('kendoGrid').dataSource.group({field: $('#ddGroupBy').val()});

如果有多个“分组依据”字段,也请在下面使用

$('#objectsListGrid').data('kendoGrid').dataSource.group(
 [
  {field: $('#ddGroupBy').val()},
  {field: $('#ddGroupBy2').val()}
 ]
);

这是详细信息 https://www.telerik.com/forums/grid---dynamically-change-grouping