2017-01-17 4 views
0

У меня есть сетка, которая имеет групповую набор для истинных и данных, сгруппированных с помощью «процесса», как это:Datagrid выбранного элемент для сгруппированных данных

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(); 
    } 
} 

пытается применить индекс выбора строки для сгруппированных данных, но это не правильно, так как индекс для групп, а не сами данные.

Любые предложения по выбору правильной части сгруппированных данных по индексу события выбора будут оценены.

ответ

0

Вы можете придавить массив уменьшить и использовать абсолютный индекс:

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

Смежные вопросы