2017-02-06 1 views
0

Я пытаюсь сортировать данные, передавая ему как значение в качестве значения из DAO, как в следующем коде, но он не сортируется. Могу ли я что-то очевидное ommiting ?:Неполадки, связанные со списком <Object[]> Исходное значение не сортируется

<p:dataTable id="mytable" var="item" 
value="#{backBean.items}" 
paginator="false" 
styleClass="mytableClass" 
> 

<p:column headerText="field4" sortBy="#{item[4]}"> 
    <h:outputText value="#{item[4]}"> 
    <f:convertNumber maxFractionDigits="1" > 
    </f:convertNumber> 
    </h:outputText> 
</p:column> 
... 
... 

Код для получателя свойства "пунктов" в @ViewScoped backBean является:

void List<Object[]> getItems(){ 
    if(items==null) 
     items = itemsDAO.findItem(); 
    return items; 
} 

где itemsDAO.findItem() является JPA запрос, возвращающий мой список , с которым я кормлю свои данные.

Когда я нажимаю стрелки «сортировать», он не сортирует таблицу, и страница зависает с бесконечным загрузчиком, отображающим внизу. Чтобы добавить некоторую ясность, элемент [4] содержит BigDecimal, и, как я прочитал, может потребоваться реализовать некоторую «сортировку» для типов, отличных от String или Integer .. это правильно? Извините, если я не слишком ясен, это мой второй пост здесь, просто дайте мне знать, если я пропущу какое-то правило. Благодаря!

ответ

0

Это работает для меня

<p:dataTable id="mytable" var="item" 
    value="#{backBean.getAsList(4)}" 
    paginator="false" 
    styleClass="mytableClass" 
    sortOrder="desc" 
> 

<p:column headerText="field4" sortBy="#{item.myID}"> 
    <h:outputText value="#{item.name}"> 
    <f:convertNumber maxFractionDigits="1" > 
    </f:convertNumber> 
    </h:outputText> 
</p:column> 

И я предполагаю, что модель есть атрибут под названием «MyId», и это число (как раз пример, очевидно)

Важно: DataTable нужен список для сделайте сортировку сортировки, поэтому, пожалуйста, реализуйте следующий отрезанный

public List<MyObject> getList(int i){ 
     return Arrays.asList(items.get(i)); //Convert array Object to List 
    } 

Надеюсь, это полезно! С уважением!

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