更改现有Kendo Grid上的选项的正确语法是什么?

时间:2013-10-16 18:41:23

标签: javascript jquery kendo-ui kendo-grid

我有一个剑道网格:

$('#myGrid').kendoGrid({
    ...
    scrollable: false,
    ...
});

然后我想改变它的可滚动属性。我已经尝试了以下所有方法:

$('#myGrid').data("kendoGrid").options.scrollable = true;
$('#myGrid').data("kendoGrid").refresh();

-

$('#myGrid').data("kendoGrid").scrollable = true;
$('#myGrid').data("kendoGrid").refresh();

-

var MyGrid = $('#myGrid').data("kendoGrid");
MyGrid.options.scrollable = true;
MyGrid.refresh();

-

var MyGrid = $('#myGrid').data("kendoGrid");
MyGrid.scrollable = true;
MyGrid.refresh();

没有任何作用。如何改变网格是否可以动态滚动?

3 个答案:

答案 0 :(得分:5)

这不支持开箱即用,所以你必须弄乱内部。重新创建网格可能更容易,但如果你仍然认为你需要它,那么这个小提琴可能会帮助你找到正确的方向:

http://jsfiddle.net/lhoeppner/AKzzL/

基本上你可以尝试使用这样的东西:

function enableScrolling() {
    if (!grid.options.scrollable) {
        grid.options.scrollable = true;
        grid._thead();
        grid.refresh();
    }
}

function disableScrolling() {
    grid.options.scrollable = false;
    grid.table.unwrap(); // manually remove the wrapper that enables scrolling
}

使可滚动网格不可滚动,导致数据列的宽度不正确,因此根据您的要求,您可能需要对其进行更多自定义。

答案 1 :(得分:4)

无法动态更改网格选项。您需要使用不同的选项重新创建整个网格,以便动态地禁用/启用它们。

修改 从2014年第三季度开始,Grid支持setOptions方法,它在内部几乎完全相同,但保持大多数选项和dataSource的状态同步。

答案 2 :(得分:0)

var MyGrid = $('#myGrid').data("kendoGrid");
MyGrid.options.scrollable = true;

(根据我的经验)然后你需要重新加载dataSource ex:

MyGrid.setDataSource(kendoDataSource);