我有 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
时,就会这样做。
任何想法???
答案 0 :(得分: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>
答案 1 :(得分:0)
尝试这样做:
<pe:inputNumber value="#{BB.valor}"
decimalSeparator="," decimalPlaces="2" thousandSeparator="." emptyValue="0"
id="id1" style="width:100px" />
答案 2 :(得分:0)
解决方案是例如
ServletContext
工作正常!!!
答案 3 :(得分:-2)
<pe:inputNumber autocomplete="off" ... />