gpt4 book ai didi

javascript - SlickGrid DataView syncGridSelection 在表格改变时不会移除旧的选择

转载 作者:行者123 更新时间:2023-11-30 19:55:03 26 4
gpt4 key购买 nike

我有一个与 dataView 一起运行的 SlickGrid,我正在使用带有选项 multiSelect=falserowSelectionModel。当我在网格中选择某些内容,然后通过单击按钮展开我的网格以显示一些隐藏的行时,选择正确移动,但旧选择仍保留在旧行上。

这是我目前所拥有的:

var dataView = new Slick.Data.DataView({inlineFilters: false});
var grid = new Slick.Grid(gridDiv, dataView, columns, options);
grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: true}));
grid.setSelectedRows([]); //make sure the selection is empty
dataView.onRowsChanged.subscribe(function (e, args) {
grid.invalidate();
});
dataView.beginUpdate();
dataView.setItems(data);
dataView.setFilter(displayFilter);
dataView.endUpdate();
dataView.syncGridSelection(grid);
grid.render();

以下是有关该行为的一些屏幕截图:

展开前:

screenshot of table before expanding

展开后的预期行为:

screenshot of expected behavior after expanding

展开后的实际行为:

screenshot of actual behavior after expanding

我很确定我很接近,但我不太清楚我做错了什么。

预先感谢您抽出宝贵时间帮助我:)

编辑:我可能找到了一些东西。我正在使用 syncGridSelection 设置一些事件,但稍后会覆盖它们。我覆盖的事件是dataView.onRowCountChanged()
dataView.onRowsChanged()
网格.onSelectedRowsChanged

这可能是这里的问题吗?我需要这些事件才能使折叠/展开功能正常工作。 grid.onSelectedRowsChanged 用于将所选项目传递给图表,因此也是必需的。

编辑 2:我能够通过示例 5 重现该问题,可以找到修改后的代码 in this paste重现步骤:1.选择第10项2. 折叠项目 7

最佳答案

查看代码后,我认为这实际上正在 工作。只是您的 CSS 更改掩盖了一点。

选定 行和事件 行。这些是不同的东西。您已将两者的 CSS(在页面本身的 CSS 区域中)设置为看起来相同。所以看起来选择仍然存在,但实际上它已被删除,但该行现在处于事件状态。

把这两条CSS规则删掉看看

要加分,请使用:

dataView.syncGridSelection(grid, true);

并且当选择在折叠/展开时移入和移出视线时,网格将保留选择。

关于javascript - SlickGrid DataView syncGridSelection 在表格改变时不会移除旧的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54088475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com