我对slickgrid有以下问题:
上述第6步所述的问题。这是一个显示问题的jsfiddler的链接: http://jsfiddle.net/fortesl/oLj8otsj/1/
代码也附上:
var grid;
var data = [];
var columns = [{
id: "title",
name: "Title",
field: "title",
width: 300,
selectable: false,
resizable: false
}, {
id: "priority",
name: "Priority",
field: "priority",
width: 200,
selectable: false,
resizable: false
}];
var options = {
editable: true,
enableAddRow: true,
enableCellNavigation: true,
forceFitColumns: true,
autoEdit: false
};
for (var i = 0; i < 100; i++) {
var d = (data[i] = {});
d["title"] = "Task " + (i + 1);
d["priority"] = "Medium";
}
grid = new Slick.Grid("#myGrid", data, columns, options);
grid.setSelectionModel(new Slick.RowSelectionModel());
grid.onSelectedRowsChanged.subscribe(function () {
var selectedRows = grid.getSelectedRows();
for (var i = 0; i < selectedRows.length; i++) {
selectedRows[i] = selectedRows[i] + 1;
}
$('.selected-rows')[0].innerHTML = selectedRows;
});
grid.onClick.subscribe(function () {
$('.selected-rows')[0].innerHTML = '';
});
请帮忙
答案 0 :(得分:0)
我通过处理OnClick事件并从处理程序调用setSelectedRows解决了我的问题。如下所示:
grid.onClick.subscribe(function(e) {
var cell = $scope.grid.getCellFromEvent(e);
var row = (cell) ? cell.row : 0;
var rows = [row];
grid.setSelectedRows(rows);
});
答案 1 :(得分:0)
这是因为单元格(不是行)处于活动状态,并且在slick.grid.js中有一项检查,确保在单击已经激活的单元格时不会激活触发器。
看看
function handleClick(e)...
在源代码文件中,您将看到有问题的检查。
答案 2 :(得分:0)
OnClick事件和调用setSelectedRows给出了所选行的另一个高亮颜色(更像黄色粉红色)而不是onSelectedRowsChanged(我的应用程序中为蓝色)