1

我有这个p:dataTable

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:pe="http://primefaces.org/ui/extensions"> 
<h:form id="form" prependId="false">
    <p:dataTable var="row" id="list" value="#{BB.dataTable}" rowIndexVar="i">
        <p:column headerText="#{bundle['id']}">
            <h:outputText value="#{row.id}" />
        </p:column>
        <p:columns var="fecha" value="#{BB.lFechaEntradaVigor}">
            <f:facet name="header">
                <h:outputText value="#{fecha}" />
            </f:facet>
            <h:outputText value="#{row.getCoste(fecha)}" styleClass="#{row.isValido(fecha)?'vigor':''}" rendered="#{!row.isUpdatable(fecha)}">
                <f:convertNumber groupingUsed="true" minFractionDigits="2" />
            </h:outputText>
            <pe:inputNumber value="#{BB.valor}" rendered="#{row.isUpdatable(fecha)}" >
                <p:ajax event="change" listener="#{BB.changeValor(fecha, row, i)}" />
            </pe:inputNumber>
        </p:columns>
    </p:dataTable>
    <p:commandButton value="#{bundleComunes.guardar}" action="#{BB.saveData()}" />
</h:form>

当我打电话时changeValor valor总是返回null,但是当我写出pe:inputNumber作品p:columns时。
任何想法???

4

4 回答 4

2

将一个支持 bean 属性绑定到许多输入字段对我来说似乎很奇怪。尝试将组件值作为参数传递给 changeValor():

<pe:inputNumber value="#{BB.valor}" rendered="#{row.isUpdatable(fecha)}" >
    <p:ajax event="change" listener="#{BB.changeValor(component.value, fecha, row, i)}" />
</pe:inputNumber>

或者更好的是使用远程命令。将以下内容放在桌子外面:

<pe:remoteCommand name="changeValor" 
    process="@this" 
    actionListener="#{BB.changeValor}" 
    global="false" 
    partialSubmit="true">
    <pe:methodSignature parameters="java.lang.String, java.lang.String, java.lang.String, java.lang.String" />
    <pe:methodParam name="valor" />
    <pe:methodParam name="fecha" />
    <pe:methodParam name="row" />
    <pe:methodParam name="i" />
</pe:remoteCommand>

不要忘记更正参数类型。

现在 inputNumber 的标记:

<pe:inputNumber value="#{BB.valor}" rendered="#{row.isUpdatable(fecha)}"  onchange="changeValor(this.value, #{fecha}, #{row}, #{i})" />
</pe:inputNumber>
于 2014-03-11T21:49:57.260 回答
0

尝试这样做:

   <pe:inputNumber value="#{BB.valor}"
decimalSeparator="," decimalPlaces="2" thousandSeparator="." emptyValue="0"
id="id1" style="width:100px" />
于 2014-03-11T08:59:58.500 回答
0

解决方案是例如

  <p:inputNumber id="haberNumber" value="#{diarioController.haber}" >
                        <p:ajax update="haberNumber" />
</p:inputNumber>

工作正常!!!

于 2016-09-22T17:58:33.863 回答
-2
<pe:inputNumber autocomplete="off" ... />
于 2015-11-04T16:49:48.177 回答