English
list.render.after
About 327 wordsAbout 1 min
2025-12-16
This hook is called after the object table is rendered and is used to perform additional actions after list rendering.
This hook is not executed in cross-object filtering mode.
Parameters
functional registers the hook callback. The host passes the following parameters when executing the hook:
| Parameter | Description | Type | Allowed Values | Default |
|---|---|---|---|---|
| context | List common parameters | Object | -- | -- |
| plugin | Current plugin runtime information; business logic normally does not need it | Object | -- | -- |
Return Value
The hook may return a configuration object or Promise<Object>. The host processes the returned configuration after the Promise resolves.
| Parameter | Description | Type | Allowed Values | Default |
|---|---|---|---|---|
| batchtermSlot | Function that mounts custom content in the list filter area (example) | ({ wrapper: HTMLDivElement }) => ({ destroy: () => void }) | -- | -- |
Parameters passed to batchtermSlot:
| Parameter | Description | Type |
|---|---|---|
| wrapper | List filter area DOM container provided by the host | HTMLDivElement |
batchtermSlot must synchronously return an object containing destroy():
| Parameter | Description | Type |
|---|---|---|
| destroy | Cleans up plugin-created DOM and events; called by the host when the list rerenders or is destroyed | () => void |
The host throws an error if the function returns no object or the returned object has no destroy() method.
Basic Examples
Custom Filter Condition
export default class Plugin {
apply() {
return [{
event: 'list.render.after',
functional: this.renderAfter.bind(this)
}];
}
renderAfter(context, plugin) {
return {
// Add a custom filter control to the list.
batchtermSlot: ({ wrapper }) => this.renderBatchtermSlot({ wrapper, context })
};
}
renderBatchtermSlot({ wrapper, context }) {
const content = document.createElement('button');
const filterList = () => {
context.bizApi.filter({
conditions: [{
Comparison: 7,
FieldName: 'name',
FilterValue: 'content'
}]
});
};
content.type = 'button';
content.textContent = 'Custom Filter';
content.addEventListener('click', filterList);
wrapper.appendChild(content);
return {
destroy() {
content.removeEventListener('click', filterList);
content.remove();
}
};
}
}Parameters of context.bizApi.filter(params):
| Parameter | Description | Type |
|---|---|---|
| params | Plugin filter parameters | Object |
| params.conditions | Condition array appended to the current list filters | Object[] |
| conditions[].Comparison | Filter operator number; for example, 7 means contains | Number |
| conditions[].FieldName | Filter field API name | String |
| conditions[].FilterValue | Filter value | Any |
The method returns void and triggers a new list data query.
Result

