Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Priming中使用RowGroup交换组位置?_Javascript_Angular_Typescript_Primeng - Fatal编程技术网

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。非常感谢兄弟!!这个解决方案会解决这个问题。然而,我将要返回的数据不是像我的示例那样的简单数组,我将无法像您在解决方案中那样硬编码或添加额外字段。你还有别的解决办法吗?非常感谢。