Datagrid 为分组数据选择的项目

Datagrid selected item for grouped data

我有一个网格,将 groupable 设置为 true 并使用 "process" 对数据进行分组,如下所示:

refreshSearchResults() {
this.resultsData = process(this.memberships, 
     {
        skip: this.resultsSkip,
        take: this.resultsPageSize,
        sort: this.resultsSort,
        group: this.groups
     }
  );
}

选择事件发送网格行的索引,但在分组数据中,这与实际数据索引无关。所以这个:

private resultsRowSelectionChanged(selection: any): void {
   if (selection.selected) {
      this.selectedMembership = this.resultsData.data[selection.index];
   }
   else {
      this.rightPanel.clearClientInfo();
   }
}

尝试将行选择索引应用于分组数据,但这是不正确的,因为索引是针对组而不是数据本身。

如有任何关于如何通过选择事件索引选择正确的分组数据的建议,我们将不胜感激。

您可以使用 reduce 展平数组并使用绝对索引:

public selectionChange(event) {
    console.log(this.gridView.data.reduce((acc, curr)=> {
        return acc.concat(curr.items);
    }, [])[event.index]);
}

检查这个 plunkr

http://plnkr.co/edit/QWLD8awyCXtQ7DRU7pZx?p=preview