当我覆盖handontable height属性时,选定的行离开可见区域

时间:2015-04-14 09:42:30

标签: css handsontable

我有一张12000行的表。我的测试场景是: - 1)选择表格中的任何一行 2)点击任何列标题(排序) 3)数据被排序并且应该保持选择,并且选择的行应该在可见区域中。

正确的工作用例: - 当_r8handsontable.scss中没有参数被修改时,它工作得很好,选择得以维持,选定的行也会出现在可见区域。

有问题的情况: - 因为我想增加行的高度。我创建了一个单独的css文件并覆盖了一些handson属性。我覆盖的CSS中的修改属性是: -

.handsontable th,
.handsontable td {
border-right: 1px solid #CCC;
border-bottom: 1px solid #CCC;
height: 30px;
empty-cells: show;
line-height: 30px;
max-height: 30px;
padding: 0 4px 0 4px;
/* top, bottom padding different than 0 is handled poorly by FF with HTML5 doctype /
background-color: #FFF;
vertical-align: top;
overflow: hidden;
outline-width: 0;
white-space: pre-line;
font: $FontSize_S, "Siemens Sans";
/ preserve new line character in cell */
}

我将行的高度更改为30px。现在当我打开桌子时,行的高度增加了。桌子的外观和感觉是根据我的需要。但在这种情况下的问题是: - 当我选择一行并单击表格标题进行排序时,选择会保持不变,但可见行会离开可见区域。

例如 - 我的表默认按升序排序。如果我选择第一行而不是单击列标题进行排序。现在我的表按降序排序,我选择的行移到底部并保持选择(我们编写了用于维护选择的逻辑),但问题是所选行不在可见区域。

1 个答案:

答案 0 :(得分:1)

是的,不幸的是,搞乱覆盖的CSS会搞砸其中的一些功能。我建议改为使用rowHeights函数。如果你给它一个int,你可以设置所有行的高度,如果你提供一个数组,你可以设置各个行的高度。

有关简单示例,请参阅我的fiddle

相关代码:

hot1 = new Handsontable(container, {
    data: data,
    startRows: 5,
    rowHeights: 40
};