Primefaces p:datatable sortBy 无法正常工作
Primefaces p:datatable sortBy not working properly
我的网站上显示了预制视图。数据查询是通过 Hibernate 从 DB2 数据库完成的,并使用 JSF 显示。整个过程在本地 JBoss 服务器上运行。
这是HTML背后的逻辑bean:
@Named(value = "vb")
@ViewScoped
public class ViewBean implements Serializable {
@Inject
private ViewHandler vh;
@PostConstruct
public void init() {
}
public List<PortView> getPVList() {
return vh.getPortViewList();
}
ViewHandler vh
检索来自相应实体的视图列表。 (见下文)
@Stateless
public class ViewHandler {
public List<PortView> getPortViewList() {
List<PortView> pvlist = em.createQuery("SELECT v FROM PortView v", PortView.class).getResultList();
return pvlist;
}
这里你看到 p:datatable 在我的 html:
<html>
<h:body>
<h:form>
<p:dataTable var="portview" value="#{vb.PVList}"
resizableColumns="true" stickyHeader="true"
stickyTopAt=".layout-topbar"
style="margin-left:10%; margin-right:10%; font-family: verdana">
<p:column style="width: 0px" sortable="false" />
<p:column headerText="Instance" sortBy="#{portview.instance}"
style="font-family: verdana; text-align:left">
<h:outputText value="#{portview.instance}" />
</p:column>
[more columns]
</p:dataTable>
</h:form>
</h:body>
</html>
问题:每一列都无法排序,内容总是随机的。我应该怎么做才能解决这个问题?
幸运的是@Melloware 能够回答我的问题:您只需将 sortBy="#{var.property}"
添加到 p:dataTable
属性即可。
有关文档,请参阅 here。
我的网站上显示了预制视图。数据查询是通过 Hibernate 从 DB2 数据库完成的,并使用 JSF 显示。整个过程在本地 JBoss 服务器上运行。
这是HTML背后的逻辑bean:
@Named(value = "vb")
@ViewScoped
public class ViewBean implements Serializable {
@Inject
private ViewHandler vh;
@PostConstruct
public void init() {
}
public List<PortView> getPVList() {
return vh.getPortViewList();
}
ViewHandler vh
检索来自相应实体的视图列表。 (见下文)
@Stateless
public class ViewHandler {
public List<PortView> getPortViewList() {
List<PortView> pvlist = em.createQuery("SELECT v FROM PortView v", PortView.class).getResultList();
return pvlist;
}
这里你看到 p:datatable 在我的 html:
<html>
<h:body>
<h:form>
<p:dataTable var="portview" value="#{vb.PVList}"
resizableColumns="true" stickyHeader="true"
stickyTopAt=".layout-topbar"
style="margin-left:10%; margin-right:10%; font-family: verdana">
<p:column style="width: 0px" sortable="false" />
<p:column headerText="Instance" sortBy="#{portview.instance}"
style="font-family: verdana; text-align:left">
<h:outputText value="#{portview.instance}" />
</p:column>
[more columns]
</p:dataTable>
</h:form>
</h:body>
</html>
问题:每一列都无法排序,内容总是随机的。我应该怎么做才能解决这个问题?
幸运的是@Melloware 能够回答我的问题:您只需将 sortBy="#{var.property}"
添加到 p:dataTable
属性即可。
有关文档,请参阅 here。