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

Posted

技术标签:

【中文标题】AG-Grid + React - 添加新行时忽略网格排序【英文标题】:AG-Grid + React - ignore grid sort when adding new row 【发布时间】:2019-03-13 15:05:24 【问题描述】:

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

为了澄清这种情况,我在 AG-Grid's website 上复制了 Simple Immutable Store Plnkr,并创建了一个新的 here。

在原始 Plnkr 中,按钮 Append 会将项目添加到列表的末尾。在分叉版本中,由于价格列升序排序,并且由于新项目不再定义价格这一事实,所有附加项目将显示在网格的第一个位置。

我的理解是,这是因为在下面 sn-p (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 场景中定义了排序。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于AG-Grid + React - 添加新行时忽略网格排序的主要内容,如果未能解决你的问题,请参考以下文章

Ag-grid - 具有自定义单元格编辑器时是不是忽略值解析器?

PHP 在使用 nl2br 时忽略空白字符的新行

在段落内的 JSX 字符串中添加新行 - React

React 中的 Ag-grid 纯 JS 单元格渲染器

AG-Grid React,无法在数据更改时更新自定义单元格渲染器。函数组件的行为与类组件不同

ag-grid vs Kendo React 网格优缺点 [关闭]