Angular ag grid不考虑ColumnDefinitions中设置的列的列顺序
根据ag grid,列顺序将遵循列定义中指定的顺序 但在使用ag栅格时,这不起作用。某些列将首先显示,即使它们是在列定义的末尾指定的。请看一些示例代码Angular ag grid不考虑ColumnDefinitions中设置的列的列顺序,angular,ag-grid,ag-grid-angular,Angular,Ag Grid,Ag Grid Angular,根据ag grid,列顺序将遵循列定义中指定的顺序 但在使用ag栅格时,这不起作用。某些列将首先显示,即使它们是在列定义的末尾指定的。请看一些示例代码 // grid.ts // helper function to generate a definition of a single column function generateColDef() { return { ... }; } // helper function to dynamically generate ColDef
// grid.ts
// helper function to generate a definition of a single column
function generateColDef() {
return { ... };
}
// helper function to dynamically generate ColDefs
export function getColDef(someArgs) {
const someDynamicCols = someArgs.map((arg) => {
return generateColDef(.....);
})
const colDefs = [
slColumn, // A column to show serial number
generateColDef('id', 'ID', {
editable: false,
}),
generateColDef('name', 'Name', {
editable: false,
}),
...someDynamicCols,
];
return colDefs;
}
// html
<ag-grid-angular [columnDefs]="colDefs" [rowData]="rowData | async">
// component
args = { some args fetched from server }
colDefs = grid.getColDef(args);
rowData = { some data fetched from server }
//grid.ts
//helper函数生成单个列的定义
函数generateColDef(){
返回{…};
}
//用于动态生成文件的辅助函数
导出函数getColDef(someArgs){
const someDynamicCols=someArgs.map((arg)=>{
返回generateColDef(…);
})
常数f=[
slColumn,//显示序列号的列
generateColDef('id','id','{
可编辑:false,
}),
generateColDef('name','name','{
可编辑:false,
}),
…一些动态摄影机,
];
返回F;
}
//html
//组成部分
args={从服务器获取的某些args}
colDefs=grid.getColDef(args);
rowData={从服务器获取的某些数据}
我所期望的是“ID”和“Name”列将首先显示,然后将显示其余的someDynamicCols
。但是ag grid有时会先显示someDynamicCols
,然后显示'ID'和'Name'列
我尝试使用ag grid API来设置colDefs,而不是使用双向绑定,但结果保持不变
有人能解释一下问题是什么吗?是ag网格API还是我做错了什么
我正在使用角度为10的最新ag网格(24.0.0)。经过很长时间,我找到了这个问题的答案。我正在添加解决方案,以防它对其他人有帮助 问题是,我正在用一些初始列初始化列定义。因此,当我添加一个新列时,ag grid将初始列保留在原来的位置,并在它们之后添加新列。这是默认的ag栅格行为 要覆盖此行为并使ag网格始终遵循列顺序,请在网格选项中将
applyColumnDefOrder
属性设置为true
ag grid文档中提到了这一点:您能否创建一个小的plunkr或stackblitz来重现您的问题。这看起来像是调试问题。我的用例使得构建plunkr有点困难。但我会尝试添加一个。感谢您的建议,只需尝试添加足够小的代码即可重现问题,这将便于此处的人员进行调试。您是一名救生员,它对您有效您需要使用24.0.0或更高版本才能使用此属性。