1

我在数据表中有问题。所有列在标题上都有 sortBy,除了最后一个具有 TieredMenu 并且每个 MenuItem 使用 item 作为参数调用支持 bean。数据表加载了一个按一个字段排序的列表,我没有使用数据模型。

问题是,在按任何字段排序后,作为参数传递的项目是初始的,而不是实际的。

例如:

最初列表按第三个字段排序:

gomez 5 4
alvarez 3 5
carballo 3 8

按第一个字段排序后:

alvarez 3 5
carballo 3 8
gomez 5 4

如果我点击第一行,我会得到 gomez 而不是 alvarez。

这是数据表的代码:

<p:dataTable scrollable="true" scrollHeight="290" 
        value="#{bb.list}"
        id="tablaEnAtencion" var="item" width="100%" rows="10000"
        sortBy="#{item.third}" sortOrder="descending"
        filteredValue="#{bb.listFiltered}">
    ...
    <p:column style="text-align:center;" width="24">
        <p:commandButton id="dynaButtonAtencion" icon="ui-icon-gear" type="button" style="width:100%;" />
        ...
        <p:tieredMenu overlay="true" trigger="dynaButtonAtencion" my="left top" at="left bottom" style="width:170px">
            <p:menuitem value="action" actionListener="#{bb.act1(item)}" />
        </p:tieredMenu>
    </p:column>
</p:dataTable>

在项目中,我有很多 DataTable,这个问题只发生在这个表上。我已经尝试过: - 在某些列上删除排序 - 在没有侦听器的情况下添加排序事件 - 使用排序侦听器添加排序事件,并在此方法上按代码排序 - 删除过滤器 - 使用 f:setPropertyActionListener 将值发送到 bb

支持 bean 是 ViewScoped。Primefaces 3.4,面对 2.1.13。

4

0 回答 0