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 - 具有自定义单元格编辑器时是不是忽略值解析器?