Skip to main content

List Context

列表上下文 (listContext) 提供对列表的引用, 在 onTableLoaded 事件调用时创建。

API

list

返回:ListNode 列表对象。

thisApp.listOnTableLoaded = async (ctx) => {
const list = ctx.getListContext().list;

// 整单模式时
if (!list.isSubGridMode) {
// 添加批量按钮
list.getToolbar().addButton({
key: 'batchDelete',
text: '批量删除',
onClick: (clickCtx) => {
const masterIds = Array.from(new Set(clickCtx.getListContext().list.selectedRows.map(row => row.masterRowNode.id)));
// do batch delete
await batchDelete(masterIds);
// 删除后刷新列表数据
clickCtx.getListContext().list.refresh();
}
})
}

// 添加行按钮
list.getToolbar().addButton({
key: 'delete',
text: '删除',
onClick: (clickCtx) => {
// 当前行的表头 ID
const masterId = clickCtx.getCurrent().row.masterRowNode.id;
// do batch delete
await batchDelete([masterId]);
// 删除后刷新列表数据
clickCtx.getListContext().list.refresh();
}
})

}

runInAction(action: () => void): void;

列表(可观察数据)批量操作(如行数据的选中状态), 可以提升处理性能


thisApp.listOnTableDataChanged = async (ctx) => {
const runInAction = ctx.getListContext().runInAction;
// 当数据刷新后设置偶数行全部选中,奇数行非选中
runInAction(() => {
list.rows.forEach((row, idx) => {
row.selected = idx % 2 === 1
})
});
}