Javascript 如何在Priming中使用RowGroup交换组位置?
我试图交换小组,但没有任何运气。基本上,我必须按照以下顺序对它们进行分组:Javascript 如何在Priming中使用RowGroup交换组位置?,javascript,angular,typescript,primeng,Javascript,Angular,Typescript,Primeng,我试图交换小组,但没有任何运气。基本上,我必须按照以下顺序对它们进行分组: ROOM3 - Yoga, Martha busy-3 - Bacon, Anna busy-3 ......... ............... ROOM1 - Brady, Marsha busy - McDonald, Jane busy ............... .................... ROOM2 - Steve, Ana b
ROOM3
- Yoga, Martha busy-3
- Bacon, Anna busy-3
.........
...............
ROOM1
- Brady, Marsha busy
- McDonald, Jane busy
...............
....................
ROOM2
- Steve, Ana busy-2
- tester busy-2
.........
...............
简单地说,我想保持分组顺序如下:
房间3-->房间1-->房间2
这是我的工作代码:
可能有更好的解决方案,但如果在
数据对象的每一行添加roomOrderId
,则可以按此字段排序:
sortField="roomOrderId"
编辑
您可以手动向每行添加roomOrderId
:
this.data.forEach(function(row) {
if(row.room==="ROOM1") {
row.roomOrderId = 2;
} else if(row.room==="ROOM2") {
row.roomOrderId = 3;
} else if(row.room==="ROOM3") {
row.roomOrderId = 1;
}
});
请参见我的我在数据对象中添加了额外的pos字段:
data = [
{ box: '', name: 'Brady, Marsha', status: 'busy', room: 'ROOM1' ,pos:2},
{ box: '1', name: 'Davis, Kevin', status: 'busy-1' , room: 'ROOM1',pos:2},
{ box: '1', name: 'Carter, Dawn', status: 'busy-1' , room: 'ROOM1',pos:2},
{ box: '', name: 'McDonald, Jane',status: 'busy', room: 'ROOM1',pos:2 },
{ box: 'MA',name: 'Bacon, Anna', status: 'wbusy-3', room: 'ROOM3',pos:1 },
{ box: 'MA',name: 'Yoga, Martha', status: 'busy-3', room: 'ROOM3' ,pos:1},
{ box: '1', name: 'Steve, Ana', status: 'busy-2', room: 'ROOM2',pos:3},
{ box: '2', name: 'tester', status: '', room: 'ROOM2',pos:3},
{ box: '3', name: 'Jhonson, Francisco', status: 'busy-2' , room: 'ROOM2',pos:3},
{ box: '4', name: 'Mathews, Susan', status: 'busy-2' , room: 'ROOM2',pos:3},
{ box: '5', name: 'Davis, Christine', status: 'busy-2' , room: 'ROOM2',pos:3},
{ box: '6', name: 'Wheaters, Bob', status: 'busy-2' , room: 'ROOM2',pos:3},
{ box: '7', name: 'Kinsky, Annabelle' , status: 'busy-2' , room: 'ROOM2',pos:3},
{ box: '8', name: '', status: '', room: 'ROOM2',pos:3},
{ box: '9', name: 'Stephanapolous', status: 'busy-2' , room: 'ROOM2',pos:3},
{ box: '10',name: 'Kelley, Tom', status: 'busy-2' , room: 'ROOM2',pos:3},
{ box: 'T', name: 'Peterson, James', status: 'busy-2' , room: 'ROOM2',pos:3}
]
和html格式:
<p-dataTable [value]="data" sortField="room" rowGroupMode="subheader" groupField="room" expandableRowGroups="true"
[sortableRowGroup]="false" sortField="pos" sortOrder="1">
<ng-template pTemplate="rowgroupheader" let-rowData>{{rowData.room}} - INFO</ng-template>
<p-column field="status" header="ID"></p-column>
<p-column field="name" header="Title"></p-column>
</p-dataTable>
{{rowData.room}-INFO
它将按您给定的顺序排序。此解决方案将解决此问题。然而,我将要返回的数据不是像我的示例那样的简单数组,我将无法像您在解决方案中那样硬编码或添加额外字段。你还有别的解决办法吗?非常感谢。您可以手动将roomOrderId添加到每一行。查看我编辑的Plunker。@Antikippe。非常感谢兄弟!!这个解决方案会解决这个问题。然而,我将要返回的数据不是像我的示例那样的简单数组,我将无法像您在解决方案中那样硬编码或添加额外字段。你还有别的解决办法吗?非常感谢。