在 extjs 中删除行后重新加载网格选择

Reload grid selection after deletion of row in extjs

我有一个只有一列的网格,当用户选择时,它用于显示各种文本字段中的信息,嵌入在右侧面板中的复选框。我在网格的行级别实现了删除功能。现在我希望这两件事中的任何一件都能发生。

1) 默认选择是在删除任何行后默认选择第一行。
或者
2)右侧面板中各个组件的信息被清除

目前发生的情况是删除后与删除行对应的信息保留,因为在网格中没有选择任何内容,因此使用先前选择的选项在右侧显示信息。

由于从网格中删除记录意味着取消选择它,您实际上只需要监听网格中选择的更改并在不存在选择时实现所需的行为。

我推荐 selectionchange 事件,因为您可以通过检查新的选择状态来涵盖选择和取消选择:

grid.on({
    'selectionchange': function(sm, selectedRecords) {
        if (selectedRecords.length === 0) {
            // no selection -> clear fields or select the first row
        } else {
            // selection exists -> load data into fields
        }
    }
});

(假设您使用的是 single selection,即可以选择一行或不选择行)