我正在使用光滑的网格。在网格的顶部,我们有一个文本框。当用户在文本框中输入值并跳出时,我们需要在网格中输入一个新行。
代码如下:
gridOptions = {
useCheckBoxField: 'selected',
data: 'data',
columns: 'columns',
enableCellNavigation: true,
enableColumnReorder: true,
editable: true,
autoEdit: true,
multiColumnSort: true,
rowSelectionModel: 'selectedRows',
enableAddRow: true
}
这就是我正在尝试编辑的第一列的外观。
{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);
问题:一切正常,只是单元格仍然无法编辑。用户必须手动单击单元格才能对其进行编辑。添加行后如何使单元格可编辑?
最佳答案
使用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);
关于javascript - 无法在光滑网格中设置焦点并编辑单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33263741/