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();

コードの最後の 3 行をハンドラー関数に入れると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 に答える
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 に答える