4

这是我到目前为止所拥有的:

 $(reportTableSelector).kendoGrid({
    dataSource: dataSource,
    sortable: false,
    pageable: false,
    scrollable: false,
    columns: colModel
});

var grid = $(reportTableSelector).data("kendoGrid");
grid.collapseGroup(grid.tbody.find(">tr.k-grouping-row"));
$('tr[role*="row"]').hide();

如果我将最后三行代码放在一个click处理函数中,它将有效地折叠所有分组的行,但在初始化grid.

4

4 回答 4

11

一种更惯用的方法

var collapseAllGroups = function (grid) {
    grid.table.find(".k-grouping-row").each(function () {
        grid.collapseGroup(this);
    });
}

//On the grid
dataBound: function (e) {
    collapseAllGroups(this);
}
于 2014-04-22T15:46:57.387 回答
3

当未应用分组或删除默认分组时,所选答案将导致行消失。

最好使用:

dataBound: function () {
    $(reportTableSelector).find('.k-icon.k-i-collapse').trigger('click');
}

如此处所示:http: //jsfiddle.net/valchev/T64Kb/

(取自http: //www.kendoui.c​​om/forums/kendo-ui-web/grid/grid-collapse-exand-all-groups.aspx )

注意:我无法让 '.k-icon.k-collapse' 在 Kendo.2013.2.716 中工作,但 '.k-icon.ki-collapse' 确实有效。

于 2013-08-28T18:24:05.310 回答
2

这是因为在初始化期间仍然没有收到数据(您可能正在使用远程数据),因此没有渲染。

您可以做collapseGroup的是在接收并绑定数据后调用:

$(reportTableSelector).kendoGrid({
    dataSource: dataSource,
    sortable: false,
    pageable: false,
    scrollable: false,
    columns: colModel,
    dataBound: function () {
        var grid = $(reportTableSelector).data("kendoGrid");
        grid.collapseGroup(grid.tbody.find(">tr.k-grouping-row"));
        $('tr[role*="row"]').hide();
    }
});
于 2013-01-03T23:19:03.080 回答
0
dataBound: function (e) {
        var grid = this;
        $(".k-grouping-row").each(function (e) {
            grid.collapseGroup(this);
        });
    },
于 2019-10-04T02:23:27.030 回答