Primeng Datatable выбор со странными данными

Я получаю два набора данных с сервера MSSQL. Установите один: (который зависит от пользователя, поэтому этот набор изменяется)

[
  {
    "TargetID": 1,
    "Enabled": true
  },
  {
    "TargetID": 2,
    "Enabled": true
  }
]

Установите два:

[
  {
    "Platform": "BB",
    "ID": 1
  },
  {
    "Platform": "MDL01",
    "ID": 2
  },
  {
    "Platform": "MDLEX",
    "ID": 4
  }
]

Установите два заполненных данных Primeng Datatable. Установить значение TargetID относится к идентификатору в наборе два. Всякий раз, когда значение TargetID совпадает с идентификатором в наборе два, я должен проверить это в Datatable.

Dataatable:

<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>

Я много не пробовал, потому что понятия не имею, как этого достичь? Я даже не могу понять, как жестко закодировать выбранные строки...

Любая помощь будет высоко ценится! Заранее спасибо!

1 ответ

Решение

Вы можете отобразить свой set1 массиву идентификаторов, которые следует выбрать:

let selectedIds = set1.map(it => it.TargetID);

Затем выберите те set2 записи, идентификаторы которых существуют в этом массиве:

this.selectedItems = set2.filter(inv => selectedIds.indexOf(inv.ID) != -1);

использование selection Атрибут таблицы для выбора строк:

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

Plunkr

Другие вопросы по тегам