Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
Json 使用奇怪的数据初始化数据表选择_Json_Angular_Primeng_Primeng Datatable - Fatal编程技术网

Json 使用奇怪的数据初始化数据表选择

Json 使用奇怪的数据初始化数据表选择,json,angular,primeng,primeng-datatable,Json,Angular,Primeng,Primeng Datatable,我正在从MSSQL服务器检索两组数据。 集合一:(这是特定于用户的,因此此集合会更改) 第二组: [ { "Platform": "BB", "ID": 1 }, { "Platform": "MDL01", "ID": 2 }, { "Platform": "MDLEX", "ID": 4 } ] Set two填充priming数据表。Set one的TargetID值指集合2中的ID。每当TargetID值与集合2中

我正在从MSSQL服务器检索两组数据。 集合一:(这是特定于用户的,因此此集合会更改)

第二组:

[
  {
    "Platform": "BB",
    "ID": 1
  },
  {
    "Platform": "MDL01",
    "ID": 2
  },
  {
    "Platform": "MDLEX",
    "ID": 4
  }
]
Set two填充priming数据表。Set one的TargetID值指集合2中的ID。每当TargetID值与集合2中的ID相同时,我必须在Datatable中检查这一点

数据表:

<div class="col-md-12">
            <p-dataTable [value]="doelplatformen" [rows]="3" class="thumbnail" resizableColumns="true" [paginator]="true" [pageLinks]="0"
                [rowsPerPageOptions]="[3,5,10]" emptyMessage="Loading data" [(selection)]="selectedDoelplatformen" (onRowSelect)="onRowSelectDoelplatform($event)">
                <p-column [style]="{'width':'30px'}" selectionMode="multiple"></p-column>
                <p-column [style]="{'width':'40px'}" field="ID" header="ID"></p-column>
                <p-column field="Platform" header="Platform"></p-column>
            </p-dataTable>
        </div>

我没有尝试太多,因为我不知道如何才能做到这一点?我甚至不知道如何硬编码选定的行


任何帮助都将不胜感激!提前谢谢

您可以将
set1
映射到应选择的ID数组:

let selectedIds = set1.map(it => it.TargetID);
然后选择该数组中存在哪些ID的
set2
记录:

this.selectedItems = set2.filter(inv => selectedIds.indexOf(inv.ID) != -1);
使用表的
selection
属性选择行:

<p-dataTable [value]="items" [(selection)]="selectedItems">
...
</p-dataTable>

...

我不清楚你的问题。如果集合1中的TargetID与集合2中的ID相同,那么应该发生什么?数据表的代码在哪里?那么应该选择与TargetID相同ID的行。我将用datatable代码更新问题这太完美了!!!!非常感谢你!这是我完成这篇论文的最后一周了,这是我最后一件想不出来的事:你救了我!如果我将一个数组传递给p-datatable,则数组中的项不会被预先选择。该表如何比较所选数组和值数组。@SaurabhTiwari,它比较行对象。如果需要按某个字段(如id)进行比较,则应使用p-dataTable组件的rowTrackBy属性。@hiper2d是指通过比较所有属性将对象与其他对象进行比较。@SaurabhTiwari,默认情况下,答案是“是”,但您可以更改此行为。阅读“选择”部分。它建议使用一些附加属性来防止比较。
<p-dataTable [value]="items" [(selection)]="selectedItems">
...
</p-dataTable>