Handsontable trimRows工作不正常

时间:2017-01-25 06:57:14

标签: javascript handsontable

我有一个非常讨厌的问题,隐藏并在handsontable中显示一些行。 非常简化的场景,我需要根据某些业务条件隐藏和显示行。

我正在使用trimRows和untrimRows,总体来说效果很好,直到关闭列排序。 如果它被启动,那么在untrim / trim方法调用和重新呈现网格之后,网格中会出现空行。

请参阅小提琴:http://jsfiddle.net/n8ggsbob/13/

columnSorting: {
                    column: 0,
                    sortOrder: true
                }
    var fake = [1, 2, 3, 4, 5, 6, 7, 8, 10];
    hot.getPlugin('trimRows').untrimRows(fake);
    hot.getPlugin('trimRows').trimRows(fake);
    hot.render();

点击提交按钮,注意出现了很多空行(或者只是没有删除)

但如前所述,如果我删除所有作品的排序:http://jsfiddle.net/n8ggsbob/14/

var fake = [1, 2, 3, 4, 5, 6, 7, 8, 10];
hot.getPlugin('trimRows').untrimRows(fake);
hot.getPlugin('trimRows').trimRows(fake);
hot.render();

唯一能帮助那些空行外观的是调用updateSettings方法,但是正在重置排序:http://jsfiddle.net/n8ggsbob/16/

    var fake = [1, 2, 3, 4, 5, 6, 7, 8, 10];
    hot.getPlugin('trimRows').untrimRows(fake);
    hot.getPlugin('trimRows').trimRows(fake);

    hot.updateSettings({});
    hot.render();

有人遇到类似的问题,或者我只是遗漏了什么?

非常感谢, 亚历

1 个答案:

答案 0 :(得分:0)

我不确定你为什么要先解开并在之后修剪:

hot.getPlugin('trimRows').untrimRows(fake);
hot.getPlugin('trimRows').trimRows(fake);

但无论如何,这就是你问题的原因。删除第一个示例中的untrimRows函数,您将看到问题将消失。

同样,我不确定你想要实现什么,但是,例如,如果你有两个按钮,一个用于隐藏,另一个用于再次显示,则与sort函数没有冲突:{{ 3}}