AG-Grid + React - 添加新行时忽略网格排序

AG-Grid + React - ignore grid sort when adding new row

在使用 AG-Grid Enterprise、React 和 Redux 的应用程序中,我想以编程方式向启用排序的网格添加新行。 是否可以忽略网格排序并将此新行插入特定的网格位置?

为了阐明这种情况,我在 AG-Grid's website and created a new one here.

上分叉了 Simple Immutable Store Plnkr

在原来的 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 场景中定义了排序。

事实证明,从 AG-Grid 17+ 开始,一个名为 postSort 的新回调可用(参见 https://www.ag-grid.com/javascript-grid-sorting/#post-sort)。

如上文档所述,即使在应用排序后,此回调也可用于调整行顺序。