我需要在IgxGrid上应用用户设置。我正在尝试的是,每当用户对列进行重新排序时,我都会将列索引保存在数据库中,而下次用户打开相同的网格时,则会保存列索引。我需要在网格上显示他之前保存的相同设置。但是,当我尝试设置列索引时,它说索引属性没有设置方法。如何实现动态更改列索引的功能?这就是我想要做的,
for (var iterator = 0; iterator < gridSettings.ColumnSettings.length; iterator++) {
if (this.componentRef.columns != null) {
for (let colIndex = 0; colIndex < this.componentRef.columns.length; colIndex++) {
if (this.componentRef.columns[colIndex].field == gridSettings.ColumnSettings[iterator].Key) {
this.componentRef.columns[colIndex].width = gridSettings.ColumnSettings[iterator].Width;
this.componentRef.columns[colIndex].index = gridSettings.ColumnSettings[iterator].Index;
break;
}
}
}
这是我遇到的错误,
错误错误:未捕获(承诺):TypeError:无法设置属性 只有吸气剂的[object Object]的索引TypeError:无法 设置[object Object]的属性索引,该属性索引只有一个吸气剂
答案 0 :(得分:0)
您是否将igx-grid列的初始呈现绑定到列设置?如果是,则*ngFor
将使用其在ColumnSettings
集合中持有的索引来呈现列。
<igx-column *ngFor="let column of gridSettings.ColumnSettings" [width]="column.width">
...
</igx-column>
与其保留index
作为ColumnSettings
数组中对象的属性,不如根据索引对数组重新排序。然后根据ColumnSettings
组件的visibleIndex
属性而不是igx-column
属性重新排列index
数组。
没有索引设置器的原因是,当列的索引发生更改时,该列应与目标索引处的列交换,或者目标之后的所有列的索引应递增到源。索引设置器的行为变得更加复杂,并且与固定的列产生更多的不一致,因为固定后,UI中不再反映数组中的索引,因为列可能位于索引5上,但是如果将其固定,然后将其冻结在网格的开头。