【问题标题】:Primefaces p:celleditor celleditPrimefaces p:celleditor celledit
【发布时间】:2013-07-23 08:34:36
【问题描述】:

我正在实现一个 p:dataTable 组件,基于 Primefaces Showcase

代码是:

<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>

以及backing bean方法:

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

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

问题是:

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

我是否遗漏了一些明显的东西?我需要额外的配置吗?

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

更新

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

<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>

backing bean 上的值输入和输出是一样的,彼此的区别应该是'货币'格式。

更新

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

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

应用正在运行:

  • Primefaces 3.5
  • Primefaces 扩展 0.7.1
  • Mojarra 2.1.22
  • 雄猫 7

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

【问题讨论】:

  • 为什么要为output facet 使用输入组件?为什么不是&lt;h:outputText/&gt;
  • @kolossus 实际上,用户希望看到输入文本

标签: jsf jsf-2 primefaces


【解决方案1】:

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

【讨论】:

  • 请查看我更新的问题。输入和输出的值应该相同吗?我的意思是,它应该没有格式或业务逻辑吗?
  • 同样的问题是什么意思?您现在可以看到哪个值?
  • 在第二种情况下,当单元格保持不变时,它会显示没有格式的“actual.money”值。当单元格发生变化时,一切都按预期工作。这是默认行为吗?我错了吗?感谢您的帮助。
  • 你有没有试过把h:outputText放在&lt;f:facet name="output"&gt;里面而不是&lt;h:inputText&gt;
  • 实际上,用户希望看到的是输入文本。不管怎样,我会试试你的建议。
【解决方案2】:

在 Primefaces 问题网站上找到报告并修复的问题:http://code.google.com/p/primefaces/issues/detail?id=6116

我下载了 4.0.RC1,我确实看到该问题已得到解决,但 4.0 与 3.5 存在一些重大差异,因此我将等待 3.5.15 发布。

【讨论】:

    猜你喜欢
    • 2012-09-24
    • 2014-03-29
    • 2018-07-15
    • 2016-11-30
    • 2013-04-25
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    相关资源
    最近更新 更多