gpt4 book ai didi

jsf - p:dataTable initial SortBy with dynamic columns

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

我想按默认列对表进行排序。我在文档中找到了以下示例:

<p:dataTable var="car" value="#{carBean.cars}" sortBy="model">
<p:column sortBy="model" headerText=”Model”>
<h:outputText value="#{car.model}" />
</p:column>
<p:column sortBy="year" headerText="Year">
<h:outputText value="#{car.year}" />
</p:column>
...more columns
</p:dataTable>

这适用于静态列。默认情况下,它按列“模型”排序。但这如何与动态列 (p:columns) 一起使用?

如果我以同样的方式实现它:
<p:dataTable id="cars" var="car" value="#{dtColumnsView.cars}"
widgetVar="carsTable"
filteredValue="#{dtColumnsView.filteredCars}"
sortBy="#{car.model}">

<p:columns value="#{dtColumnsView.columns}" var="column"
columnIndexVar="colIndex" sortBy="#{car[column.property]}">

<f:facet name="header">
<h:outputText value="#{column.header}" />
</f:facet>

<h:outputText value="#{car[column.property]}" />
</p:columns>
</p:dataTable>

它已正确排序,但未设置已排序列标题的样式!如果我使用 sortBy="#{car[column.property]}" ,则会设置所有列的样式并且排序不起作用。
我认为问题出在 DataTableRenderer resolveDefaultSortIcon 方法中。属性 tableSortByExpressioncolumnSortByExpression 不同。

这是一个错误吗?任何帮助或解决方法?我正在使用 PrimeFaces 4.0。但我也用 5.1 对其进行了测试。

最佳答案

我有类似的问题并在 primefaces 论坛中提问

答案在这里

http://forum.primefaces.org/viewtopic.php?f=3&t=41301&p=130146#p130146

所以你的例子中的工作代码应该是

<p:dataTable id="cars" var="car" value="#{dtColumnsView.cars}"
widgetVar="carsTable"
filteredValue="#{dtColumnsView.filteredCars}"
sortBy="#{false}" sortField="model">

<p:columns value="#{dtColumnsView.columns}" var="column"
columnIndexVar="colIndex" sortBy="#{car[column.property]}"
field="#{column.property}">

<f:facet name="header">
<h:outputText value="#{column.header}" />
</f:facet>

<h:outputText value="#{car[column.property]}" />
</p:columns>
</p:dataTable>

关于jsf - p:dataTable initial SortBy with dynamic columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27541402/

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