gpt4 book ai didi

jsf - 排序在 PrimeFaces 的数据表中不起作用?

转载 作者:行者123 更新时间:2023-12-03 12:10:33 25 4
gpt4 key购买 nike

排序在 PrimeFaces 的数据表中不起作用。请建议。

请参阅下面我的 .xhtml 文件

<h:form>

<p:dataTable style="width: 60%" id="dt1" value="#{bean.list}" var="entry" first="0" paginator="true" rows="10" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate="5,10,15" emptyMessage="No cars found with given criteria" >

<f:facet name="header">
<h2>Cars View</h2>
</f:facet>

<p:column sortBy="#{entry.carno}" filterBy="#{entry.carno}">
<f:facet name="header">
<h:outputText value="Car Number" />
</f:facet>
<h:outputText value="#{entry.carno}"></h:outputText>
</p:column>

<p:column sortBy="#{entry.carsettings['car-model']}" filterBy="#{entry.carsettings['car-model']}">
<f:facet name="header">
<h:outputText value="Car Model"/>
</f:facet>
<h:outputText value="#{entry.carsettings['car-model']}"></h:outputText>
</p:column>

<p:column sortBy="#{entry.carsettings.year}" filterBy="#{entry.carsettings.year}">
<f:facet name="header">
<h:outputText value="Car Year"/>
</f:facet>
<h:outputText value="#{entry.carsettings.year}"></h:outputText>
</p:column>

<p:column sortBy="#{entry.carsettings.color}" filterBy="#{entry.carsettings.color}">
<f:facet name="header">
<h:outputText value="Car Color"/>
</f:facet>
<h:outputText value="#{entry.carsettings.color}"></h:outputText>
</p:column>
</p:dataTable>
</h:form>

@肖恩

看下面的代码


汽车 list



    <ui:composition template="/template.xhtml">
<ui:define name="content">
<f:view>
<f:event type="preRenderView" listener="#{MyBackingBean.load}"></f:event>
<center>
<h1>Car View</h1>
<h:outputText value="No data found" style="font-size: 15px;font-family: Arial, Verdana,Helvetica, sans-serif" rendered="#{MyBackingBean.noDataExist}"></h:outputText>
<h:form id="dataform1">
<p:dataTable var="item" value="#{MyBackingBean.dataList}" dynamic="true" paginator="true" rows="2" id="table" style="width:60%"
rendered="#{!MyBackingBean.noDataExist}" >
<p:column sortBy="#{item.id}" filterBy="#{item.id}">
<f:facet name="header">
<h:outputText value="ID" />
</f:facet>
<h:outputText value="#{item.id}" />
</p:column>
<p:column sortBy="#{item.carsettings['car-color']}" filterBy="#{item.carsettings['car-color']}">
<f:facet name="header">
<h:outputText value="Color" />
</f:facet>
<h:outputLink target="_blank" value="http://#{item.carsettings['car-color']}">
<h:outputText value="#{item.carsettings['car-color']}" />
</h:outputLink>
</p:column>
<p:column sortBy="#{item.carsettings.model}" filterBy="#{item.carsettings.model}">
<f:facet name="header">
<h:outputText value="Model" />
</f:facet>
<h:outputText value="#{item.carsettings.model}" />
</p:column>
<p:column sortBy="#{item.carsettings.manufacturer}" filterBy="#{item.carsettings.manufacturer}">
<f:facet name="header">
<h:outputText value="Manufacturer" />
</f:facet>
<h:outputText value="#{item.carsettings.manufacturer}" />
</p:column>
</p:dataTable>
</h:form>
</center>
</f:view>
</ui:define>
</ui:composition>
</h:body>



排序在上面的代码中不起作用

请帮忙

最佳答案

primefaces 支持 bean (ViewScoped!) 必须拥有它自己的行列表。因此,例如,如果您每次请求 p:dataTable:value 时都查询数据库,排序不起作用。

解决方案:从数据库中收集列表并将其保存在支持 bean 中的本地列表变量中。

public List<Row> getDataTable() {
if (tableDataList == null)
tableDataList = loadListOnce();
return tableDataList;
}

关于jsf - 排序在 PrimeFaces 的数据表中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5020725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com