Фильтрация Primefaces Datatable с несколькими строками на ячейку - PullRequest
0 голосов
/ 03 декабря 2018

Следующая проблема:

Нам нужно отобразить несколько строк на ячейку в нашей таблице данных, например:

ID1  |  Value1 | further columns....
     |  Value2 | further columns....
ID2  |  Value3 | further columns....
     |  Value4 | further columns....
     |  Value5 | further columns....
ID3  |  Value6 | further columns....
ID4  |         | further columns....

Мы сделали это с несколькими строками на столбец:

<p:column>
   <p:repeat value="#{entry.data1}" var="data">
        <div style="height:20px">
            <h:outputText value="#{data.data}"/>  
        </div>
        <br/>>
   </p:repeat>
</p:column>

Мы определяем наши заголовки с помощью:

 <p:column sortBy="#{bean.getFirstValueOfSubList()}"
                              filterBy=""/>

И наши данные выглядят так (список DataClass в нашем Бине):

public class DataClass {
   private int id;
   private List<SubData> subDataList;
   // further columns
}
public class SubData {
   private int id;
   private double data;
   // further data
}

Мы должныСортировать по первой записи в нашем подсписке.Мы сделали это с помощью функции, возвращающей первую запись.Это уже работает.

Что нам теперь нужно сделать, так это фильтрацию.Мы должны фильтровать пользовательский ввод и отображать только строки, содержащие отфильтрованные данные, а в строках только значения, которые отфильтрованы.

Например, если я отфильтрую в списке вверху сообщения значение Value4, должен быть возвращен следующий список:

ID2 |  Value4  | futher columns....

Кто-нибудь знает, как это сделать??

...