在 Ag-Grid 中显示 PopupMenu
Show PopupMenu in Ag-Grid
如何以编程方式在 Ag-Grid 中显示 PopupMenu 列?
PopupMenu Ag-Grid
使用 gridApi 可以隐藏它,但不能显示它
gridApi.hidePopupMenu()
我也尝试使用 FilterInstance 和 columnApi,但我还没有找到任何有效的东西
gridApi.getFilterInstance(colKey)
gridColumnApi?.getColumn(colKey) ...
谢谢
您要做的是访问 Ag Grid API 的 getFilterInstance()。这是相关文档:https://www.ag-grid.com/javascript-grid/filter-api/
这是使用 getFilterInstance 方法访问和设置过滤器的一种方法
var FilterComponent = gridOptions.api.getFilterInstance('Status');
FilterComponent.selectNothing(); //Cleared all options
FilterComponent.selectValue('Approved') //added the option i wanted
FilterComponent.onFilterChanged();
这是一个相关的 Whosebug 问题:
您可以添加一些解决方法来打开过滤器弹出窗口:
// find the header menu button for the desired column
const colElement = document.querySelector("div[col-id='" + desiredColumn.getColId() + "'] > .ag-cell-label-container > .ag-header-cell-menu-button");
colElement.dispatchEvent(new Event("click")); // simulate a click on the menu button
// the next part ist to switch to the filter tab:
setTimeout(() => { // give the browser some time to render the menu
const tabElement = document.querySelectorAll("div.ag-tabs-header > .ag-tab")[1]; // select the filter tab
if (!tabElement.classList.contains("ag-tab-selected")) { // if the filter tab is not selected already
tabElement.dispatchEvent(new Event("click")); // click the filter tab
}
}, 10);
基本上,您可以在 DOM 中找到按钮并对其执行虚拟点击。它不漂亮,但效果很好,也许我们将来会得到一个 API。
如何以编程方式在 Ag-Grid 中显示 PopupMenu 列?
PopupMenu Ag-Grid
使用 gridApi 可以隐藏它,但不能显示它
gridApi.hidePopupMenu()
我也尝试使用 FilterInstance 和 columnApi,但我还没有找到任何有效的东西
gridApi.getFilterInstance(colKey)
gridColumnApi?.getColumn(colKey) ...
谢谢
您要做的是访问 Ag Grid API 的 getFilterInstance()。这是相关文档:https://www.ag-grid.com/javascript-grid/filter-api/
这是使用 getFilterInstance 方法访问和设置过滤器的一种方法
var FilterComponent = gridOptions.api.getFilterInstance('Status');
FilterComponent.selectNothing(); //Cleared all options
FilterComponent.selectValue('Approved') //added the option i wanted
FilterComponent.onFilterChanged();
这是一个相关的 Whosebug 问题:
您可以添加一些解决方法来打开过滤器弹出窗口:
// find the header menu button for the desired column
const colElement = document.querySelector("div[col-id='" + desiredColumn.getColId() + "'] > .ag-cell-label-container > .ag-header-cell-menu-button");
colElement.dispatchEvent(new Event("click")); // simulate a click on the menu button
// the next part ist to switch to the filter tab:
setTimeout(() => { // give the browser some time to render the menu
const tabElement = document.querySelectorAll("div.ag-tabs-header > .ag-tab")[1]; // select the filter tab
if (!tabElement.classList.contains("ag-tab-selected")) { // if the filter tab is not selected already
tabElement.dispatchEvent(new Event("click")); // click the filter tab
}
}, 10);
基本上,您可以在 DOM 中找到按钮并对其执行虚拟点击。它不漂亮,但效果很好,也许我们将来会得到一个 API。