我正在使用光滑的网格。在网格的顶部,我们有一个文本框。当用户在文本框中输入值并标签时,我们需要在网格中输入一个新行。
这是代码的外观:
{id: 'id', name: 'id', field: 'id', editor: Slick.Acsiom.Editors.Text, sortable: true, width: 210, minWidth: 100},
这就是第一列看起来我想要编辑的内容。
var d = $scope.$grid.grid.getData();
$scope.$grid.grid.invalidateRow(d.length);
//Adds the new row as the first row.
d.unshift(item);
$scope.$grid.grid.updateRowCount();
$scope.$grid.grid.setData(d);
$scope.selectedRows = [];
$scope.selectedRows = [0];
//Sets the first row and first column as editable
$scope.$grid.grid.setActiveCell($scope.selectedRows,0);
$scope.$grid.grid.gotoCell(0,0,true);
这是输入新行然后使第一个单元格可编辑并将焦点设置在单元格上的代码。
{{1}}
问题:一切正常,但细胞仍然不可编辑。用户必须手动单击单元格进行编辑。如何在添加行后立即编辑单元格?
答案 0 :(得分:0)
使用grid.editActiveCell
- 请点击此处https://github.com/mleibman/SlickGrid/wiki/Slick.Grid#wiki-editActiveCell
设置活动单元格后,使其可编辑。
var grid = $scope.$grid.grid;
var row = $scope.selectedRows[0];
var col = 0;
grid.setActiveCell(row, col);
grid.editActiveCell(Slick.Acsiom.Editors.Text);
答案 1 :(得分:0)
遇到类似的问题,我需要以下三行来打开一个单元格进行编辑。
grid.setActiveCell(row, col);
grid.setOptions({editable: true});
grid.editActiveCell(grid.getCellEditor());
如果某个单元格已经过验证,我就会使用布尔' editCell'和' cellEditOpen',并设置grid.setOptions({editable:false});必要时