![](/img/trans.png)
[英]Angular-Slickgrid drop down box filter pops extra drop down boxes below grid after each click on filter
[英]Update grid state in Angular-Slickgrid after grid creation
在創建 angular-slickgrid 之后設置保存的網格狀態的最佳方法是什么? Grid State/Presets - Wiki解釋了通過設置 gridOptions.presets 來設置加載時保存的狀態。 就我而言,我想在本地存儲中的底層保存狀態發生變化時更新網格狀態(可能是從應用程序的另一個實例中保存的),並將狀態應用於當前的 slickgrid。 如果我更新 gridOptions.presets,是否可以調用一種方法來強制網格使用新預設進行更新?
請注意,我是 Angular-Slickgrid 的作者。
答案是不,它被稱為預設是有原因的,它只在創建網格時才有效……但你仍然可以通過一些方法調用來做到這一點。 因此,如果您真的想使用網格狀態,那么您必須自己保存它,然后在應用所有先前的狀態后重新加載整個網格。 可以動態應用的網格狀態是您可以在示例 4和示例 25中看到的過濾器和排序(通過按鈕單擊或像上一個示例一樣的下拉選擇)。 我后來也添加了一種更改列的方法,並且在此 Slickgrid-Universal Example 11下演示了該方法,實際上該演示將准確地向您展示您想要的方式,您可以按照此處的代碼進行操作。
對於簡短的代碼示例,您需要從(onAngularGridCreated)
獲取angularGrid
實例,然后使用它來動態更改網格。 它向您顯示所有選項,如果您不需要或想要更改該選項,您可以跳過其中任何一個。
angularGridReady(angularGrid: AngularGridInstance) {
this.angularGrid = angularGrid;
}
// the `selectedView` should be the result of your Grid State
changeGridView(selectedView: GridState) {
if (selectedView) {
const columns = selectedView?.columns ?? [];
const filters = selectedView?.filters ?? [];
const sorters = selectedView?.sorters ?? [];
this.angularGrid.filterService.updateFilters(filters as CurrentFilter[]);
this.angularGrid.sortService.updateSorting(sorters as CurrentSorter[]);
this.angularGrid.gridStateService.changeColumnsArrangement(columns);
// if you have a frozen grid (pinning)
this.angularGrid.gridService.setPinning(pinning);
} else {
// to reset the grid
this.angularGrid.filterService.clearFilters();
this.angularGrid.sortService.clearSorting(); this.angularGrid.gridStateService.changeColumnsArrangement([...this.columnDefinitions].map(col => ({ columnId: `${col.id}` })));
// if you have a frozen grid (pinning)
this.angularGrid.gridService.clearPinning();
}
// you might want to scroll back to top of the grid if filters are changed
this.angularGrid.slickGrid.scrollColumnIntoView(0);
}
您可能不需要重新渲染網格,但如果網格 UI 無法正確顯示,您可以通過使其所有行無效來強制重新渲染網格
this.angularGrid.slickGrid.invalidate();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.