在使用AG-Grid Enterprise,React和Redux的应用程序中,我想以编程方式向已启用排序的网格中添加新行。 是否可以忽略网格排序并将新行插入特定的网格位置?
为弄清这种情况,我在AG-Grid's website分叉了简单不可变商店Plnkr,并创建了一个新的here。
在原始的Plnkr中,按钮Append
将项目添加到列表的末尾。在分叉版本中,由于价格升序排序,并且由于新项目不再定义价格,所有附加项目将显示在网格的第一个位置。
我的理解是,发生这种情况是因为在下面的摘录(this.gridApi.setRowData
)的最后一行中,AG-Grid将添加新行并触发排序,过滤器等。
addFiveItems(append) {
var newStore = immutableStore.slice();
for (var i = 0; i < 5; i++) {
var newItem = createItem(append);
if (append) {
newStore.push(newItem);
} else {
newStore.splice(0, 0, newItem);
}
}
immutableStore = newStore;
this.gridApi.setRowData(immutableStore);
}
请记住,是否有任何AG-Grid API允许在激活排序时将项目添加到特定的网格位置??目的是使Append
按钮保持原始状态行为:即使在此AG-Grid Enterprise,React和Redux场景中定义了排序,也将项目追加到网格的末尾。
答案 0 :(得分:0)
结果证明,从AG-Grid 17+开始,可以使用名为postSort
的新回调(请参见https://www.ag-grid.com/javascript-grid-sorting/#post-sort)。
如上面的文档中所述,即使在应用排序后,此回调也可用于调整行顺序。