我在项目中使用了handontable。连续行的选择,即使用shift键选择多个连续行的工作正常,但是当我尝试使用控制键选择随机行时,它无法正常工作。有人告诉我,没有办法在handsontable中选择多个随机行。
我们正在通过以下方式初始化handson构造函数: -
$element.handsontable({
columns:$scope.handsontable.columns,
data: $scope.handsontable.data,
colHeaders: $scope.handsontable.columnHeaders,
colWidths:$scope.handsontable.columnWidths,
readOnly:$scope.handsontable.readOnly,
fillHandle: false,
**currentRowClassName: 'currentRow',
currentColClassName: 'currentCol',**
variableRowHeights : false,
cells: function () {
this.renderer = $scope.gridConfiguration;
}
});
.css class for handson" currentRowClassName"和" currentColClassName"提供为: -
.handsontable .currentRow {
background-color: #66A3FF !important;
}
.handsontable .currentCol {
background-color: #F9F9FB;
}
当看到handsontable.js时,我发现以下if block: -
if (priv.settings.currentRowClassName || priv.settings.currentColClassName) {
instance.view.wt.selections.highlight.clear();
instance.view.wt.selections.highlight.add(priv.selRange.from);
instance.view.wt.selections.highlight.add(priv.selRange.to);
}
我试着评论出它的第一行(instance.view.wt.selections.highlight.clear();
),这样选择就不会被清除,但即使这样也行不通。
请帮助我使用handontable选择随机(不一定是连续的)行。感谢
并尝试更改它但没有任何效果
答案 0 :(得分:0)
我不认为HOT支持这种选择,但您可以使用一些DOM操作来实现它。您可以尝试创建一个.beforeMouseDown
事件,如果选择了ctrl键而没有选择任何其他内容,则会将某个数组附加到当前所在的单元格中。
然后查看源代码,以便为Shift做同样的事情。我的猜测是,当按住Shift时,将SelectedCells
设置为选择开始和结束之间的所有单元格。您只需要将其更改为仅开始和结束,而不是介于两者之间。