We’re using Bryntum TaskBoard in an Angular app with virtualize and drawOnScroll enabled. On initial load, tasks render fine. When we perform a search, we re-call the same API with the search term. The API returns 5 results, but the UI shows 5 empty (white) boxes instead of task cards. This issue only occurs after enabling virtualization and drawOnScroll.
HTML Code
// search button
<div class="search_box d-flex align-items-center">
<input
type="text"
placeholder="Search..."
[formControl]="searchText"
/>
<button
type="button"
class="search_sumbit"
(click)="getTaskboardDealsData()"
>
</button>
</div>
<bryntum-task-board
#taskboard
[project]="taskBoardConfig?.project"
[stickyHeaders]="taskBoardConfig?.stickyHeaders"
[showCollapseInHeader]="taskBoardConfig?.showCollapseInHeader"
[showCountInHeader]="taskBoardConfig?.showCountInHeader"
[tasksPerRow]="taskBoardConfig?.tasksPerRow"
[columnDragFeature]="taskBoardConfig?.features?.columnDrag"
[taskEditFeature]="taskBoardConfig?.features?.taskEdit"
[taskMenuFeature]="taskBoardConfig?.features?.taskMenu"
[columnHeaderMenuFeature]="taskBoardConfig?.features?.columnHeaderMenu"
[taskTooltipFeature]="taskBoardConfig?.features?.taskTooltip"
[taskDragFeature]="taskBoardConfig?.features?.taskDrag"
[columnToolbarsFeature]="taskBoardConfig?.features?.columnToolbars"
[bodyItems]="taskBoardConfig?.bodyItems"
[headerItems]="taskBoardConfig?.headerItems"
[footerItems]="taskBoardConfig?.footerItems"
[columns]="taskBoardConfig?.columns"
[columnField]="taskBoardConfig?.columnField"
(onTaskDrop)="onTaskDropHandle($event)"
(onColumnDrop)="onColumnDropHandle($event)"
[taskRenderer]="taskBoardConfig?.taskRenderer"
[virtualize]="true"
[drawOnScroll]="false"
</bryntum-task-board>
Component Code
ngAfterViewInit(): void {
this.taskboard = this.taskboardComponent.instance;
this.getTaskboardDealsData()
}
getTaskboardDealsData() {
// api function
this.dealService.getDealsTaskboardData(this.searchText.value ?? '').subscribe({
next: (response: any) => {
// response
this.taskboard.project = apiResponse;
}