Primefaces p:celleditor celledit

时间:2013-07-24 02:42:10

标签: jsf jsf-2 primefaces

我正在基于Primefaces Showcase

实现p:dataTable组件

代码是:

<p:dataTable
    id="newDataTable"
    editable="true"
    editMode="cell"
    var="item"
    value="#{myBean.listNewDataTable}">

    <p:ajax event="cellEdit" listener="#{myBean.newCellEditListener}" update="@this"/>
    <p:column width="150" >
        <p:cellEditor>
            <f:facet name="output">
                <h:inputText value="#{item.description}" readonly="true"/>
            </f:facet>
            <f:facet name="input">
                <p:selectOneMenu value="#{item.id}" style="width: 90%;">
                    <f:selectItems value="#{myBean.productsMap.entrySet()}" var="entry" itemValue="#{entry.key}" itemLabel="#{entry.value}" />
                </p:selectOneMenu>
            </f:facet>
        </p:cellEditor>
    </p:column>
    -- More Data --
</p:dataTable>

支持bean方法:

public void newCellEditListener(CellEditEvent event){
    ... Some work here ...
}

当可编辑单元格上的值发生更改时,p:cellEditor将按预期工作。

问题是:

  

当可编辑单元格上的值保持不变时,p:cellEditor会显示item.id,它应该实际显示item.description。

我错过了一些明显的东西吗?我需要其他配置吗?

我一直在谷歌搜索提示或答案,但没有成功。

更新

以下代码仍然存在同样的问题:

<p:column headerText="Money" width="150" >
    <p:cellEditor >
        <f:facet name="output">
            <h:inputText value="#{actual.money}" readonly="true">
                <f:convertNumber type="currency" />
            </h:inputText>
        </f:facet>
        <f:facet name="input">
            <h:inputText value="#{actual.money}">
            </h:inputText>
        </f:facet>
    </p:cellEditor>
</p:column>

支持bean的值对于输入和输出是相同的,彼此之间的差异应该是'货币'格式。

更新

作为一种解决方法,我使用“p:commandButton”来更新Datatable。

<p:commandButton icon="ui-icon-refresh" update="newDataTable" value="Update" />

该应用正在运行:

  • Primefaces 3.5
  • Primefaces Extensions 0.7.1
  • Mojarra 2.1.22
  • Tomcat 7

感谢您的帮助。 亲切的问候。

2 个答案:

答案 0 :(得分:0)

输出和输入中的值应该相同。试着解决这个问题。

答案 1 :(得分:0)

在Primefaces问题网站上发现并修复了问题:http://code.google.com/p/primefaces/issues/detail?id=6116

我下载了4.0.RC1,我确实看到问题已按报告解决,但4.0和3.5之间存在一些主要差异,所以我将等待3.5.15发布。