Обратите внимание, что я являюсь автором Angular -Slickgrid
Вы можете использовать метод addItem
из Grid Service, он по умолчанию выделит строку. Взгляните на этот Пример , но он не будет выбирать строку по умолчанию, но есть дополнительная опция для этого метода, которую вы можете использовать selectRow: true
Для этого примера, который я упомянул, вот код для этого.
angularGridReady(angularGrid: AngularGridInstance) {
this.angularGrid = angularGrid;
this.dataView = angularGrid.dataView;
this.grid = angularGrid.slickGrid;
this.gridService = angularGrid.gridService;
}
addNewItem(insertPosition?: 'top' | 'bottom') {
const newId = this.dataset.length;
const randomYear = 2000 + Math.floor(Math.random() * 10);
const randomMonth = Math.floor(Math.random() * 11);
const randomDay = Math.floor((Math.random() * 29));
const randomPercent = Math.round(Math.random() * 100);
const newItem = {
id: newId,
title: 'Task ' + newId,
duration: Math.round(Math.random() * 100) + '',
percentComplete: randomPercent,
percentCompleteNumber: randomPercent,
start: new Date(randomYear, randomMonth, randomDay),
finish: new Date(randomYear, (randomMonth + 2), randomDay),
effortDriven: true
};
this.angularGrid.gridService.addItem(newItem, { position: insertPosition, selectRow: true });
}
Обратите внимание, что addItem
поддерживает только позицию top
или bottom
(которая в основном будет вставляться в первую или последнюю строку в сетке).
Если вы действительно хотите sh вставить строку по указанному c индексу в сетке, тогда вам нужно будет посмотреть, как я реализовал этот addItem
метод здесь . Все методы в грид-службе в основном являются вспомогательными методами, все они используют методы SlickGrid и DataView для окончательного выполнения. Также обратите внимание, что с выделением немного сложнее справиться, вам нужно использовать SlickGrid MetaData для изменения CSS классов (добавить / удалить css класс на секунду) в этой строке, чтобы имитировать выделение, чтобы это еще одна причина просто использовать грид-сервис.