我试图将一个数据表排序,将一个List作为值传递给DAO,就像在下一个代码中一样,但它无法排序。我是否省略了明显的事情?:
<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>
...
...
&#34;项目&#34;的吸气剂代码@ViewScoped backBean中的属性是:
void List<Object[]> getItems(){
if(items==null)
items = itemsDAO.findItem();
return items;
}
其中 itemsDAO.findItem()是返回我的列表的JPA查询,我用它来提供我的数据表。
当我点击&#39;排序&#39;箭头,它没有排序我的表,页面挂起,底部显示一个无尽的加载程序。为了增加一些清晰度,项目[4] 包含一个BigDecimal,正如我所读到的,实现一些&#39; sortFunction&#39;可能是必要的。对于String或Integer以外的类型..是吗?对不起,如果我不太清楚,这是我在这里的第二篇文章,请告诉我是否跳过了一些规则。谢谢!
答案 0 :(得分: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”的属性,这是一个数字(显然只是一个例子)
重要提示:数据表需要一个列表进行排序比较,因此请执行下一个剪切
public List<MyObject> getList(int i){
return Arrays.asList(items.get(i)); //Convert array Object to List
}
我希望这有用!此致!