use*_*133 4 ag-grid ag-grid-ng2 ag-grid-angular
使用 Angular 4(打字稿),我有一些使用 ag-grid 12.0.2 的代码,如下所示。我要做的就是加载我的网格并自动(以编程方式)选择第一行。
:
this.gridOptions = ....
suppressCellSelection = true;
rowSelection = 'single'
:
loadRowData() {
this.rowData = [];
// build the row data array...
this.gridOptions.api.setRowData(this.rowData);
let node = this.gridOptions.api.getRowNode(...);
// console logging here shows node holds the intended row
node.setSelected(true);
// console logging here shows node.selected == true
// None of these succeeded in highlighting the first row
this.gridOptions.api.redrawRows({ rowNodes: [node] });
this.gridOptions.api.redrawRows();
this.gridOptions.api.refreshCells({ rowNodes: [node], force: true });
Run Code Online (Sandbox Code Playgroud)
选择了第一个节点,但该行拒绝在网格中突出显示。否则,鼠标行选择工作得很好。此代码模式与此处的示例代码相同:https : //www.ag-grid.com/javascript-grid-refresh/#gsc.tab=0 但它不起作用。
抱歉,我不允许发布实际代码。
小智 5
onGridReady 表示网格已准备好但数据尚未准备好。使用 onFirstDataRendered 方法:
<ag-grid-angular (firstDataRendered)="onFirstDataRendered($event)">
</ag-grid-angular>
onFirstDataRendered(params) {
this.gridApi.getDisplayedRowAtIndex(0).setSelected(true);
}
Run Code Online (Sandbox Code Playgroud)
这将自动选择网格中的顶行。
小智 2
由于您想在页面加载时选择第一行,因此您可以在构造函数中执行操作。但是你的 gridApi 应该在 OnGridReady($event) 方法中初始化
this.gridApi.forEachNode((node) => {
if (node.rowIndex === 0) {
node.setSelected(true);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8064 次 |
| 最近记录: |