我如何获得并设置ag
我如何获得并重新设置一个ag-grid表的状态? 我的意思是,按照什么顺序显示哪些列,使用什么排序和筛选等等。
更新 :getColumnState和setColumnState似乎接近我想要的,但我无法弄清楚我应该保存和恢复状态的回调。 我尝试在onGridReady中恢复它,但是当实际的行加载时,我失去了状态。
我相信你正在寻找这个Docs页面。 这描述了列api以及可用的功能。 最相关的功能是:
getAllDisplayedColumns()
- 用于显示哪些列可以呈现到显示中。 由于虚拟化,可能有一些列尚未呈现给DOM,如果您只需要将列呈现给DOM,然后使用getAllDisplayedVirtualColumns()
- 两个函数都会显示订单,因为它们将显示在网页上 Column
对象包含每个列的排序和筛选器属性。 我相信所有你需要的东西都可以从你的函数中得到,这个函数将会像这样gridOptions.columnApi.getAllDisplayedColumns()
其他可能有用的功能:
gridOptions.columnApi
: getColumnState()
- 返回的对象比上面的函数具有更少的细节 - 只有:aggFunc,colId,hide,pinned,pivotIndex,rowGroupIndex和width setColumnState(columnState)
- 这允许您将列设置为隐藏,可见或固定, columnState
应该是从getColumnState()
返回的内容 gridOptions.api
: getSortModel()
- 获取当前的排序模型 setSortModel(model)
- 设置网格的排序模型, model
应该与getSortModel()
返回的格式相同 getFilterModel()
- 获取当前的过滤器模型 setFilterModel(model)
- 设置网格的过滤器模型, model
应该与getFilterModel()
返回的格式相同 还有其他更具体的功能,如果您只想要固定可以使用setColumnPinned
列或一次使用多列,请使用setColumnsPinned
并且可以从AG-Grid文档的链接页面获得更多功能
gridReady
事件应该做你需要做的事情。 我怀疑发生了什么是您的过滤器状态正在重置,当您使用数据更新网格时 - 您可以通过设置filterParams: {newRowsAction: 'keep'}
来改变此行为filterParams: {newRowsAction: 'keep'}
这可以通过按列设置,也可以通过defaultColDef
全局设置。
以下是适用于您的示例配置:
var gridOptions = {
columnDefs: columnDefs,
enableSorting: true,
enableFilter: true,
onGridReady: function () {
gridOptions.api.setFilterModel(filterState);
gridOptions.columnApi.setColumnState(colState);
gridOptions.api.setSortModel(sortState);
},
defaultColDef: {
filterParams: {newRowsAction: 'keep'}
}
};
我在这里创建了一个plunker,它说明了这将如何工作(注意我正在从硬代码字符串恢复状态,但同样的原则适用):https://plnkr.co/edit/YRH8uQapFU1l37NAjJ9B。 rowData在加载后设置为1秒
需要做以下工作。
在您的html中包含网格的div
<div id="myGrid" style="width: 500px; height: 200px;"></div>
在js方面
//initialize your grid object
var gridDiv = document.querySelector('#myGrid');
//Define the columns options and the data that needs to be shown
var gridOptions = {
columnDefs: [
{headerName: 'Name', field: 'name'},
{headerName: 'Role', field: 'role'}
],
rowData: [
{name: 'Niall', role: 'Developer'},
{name: 'Eamon', role: 'Manager'},
{name: 'Brian', role: 'Musician'},
{name: 'Kevin', role: 'Manager'}
]
};
//Set these up with your grid
new agGrid.Grid(gridDiv, gridOptions);
检查此笔了解更多功能。 https://codepen.io/mrtony/pen/PPyNaB。 它完成角度
链接地址: http://www.djcxy.com/p/95599.html下一篇: UserWarning: Label not :NUMBER: is present in all training examples