h:inputTex与f:ajax监听器未在p:datatable和p:列中触发

时间:2014-03-06 09:49:13

标签: java ajax jsf-2 primefaces

我有 p:dataTable

<h:form id="forms" styleClass="tTablas" prependId="false">
<p:dataTable var="row" id="list" value="#{BB.dataTable}" rowIndexVar="i">
    <p:column headerText="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>
        <h:inputText value="#{BB.valor}" rendered="#{row.isUpdatable(fecha)}">
            <f:convertNumber groupingUsed="true" minFractionDigits="2" />
            <f:ajax render="@this" listener="#{grupoValoracionSiaBB.changeValor(fecha, row, i)}" />
        </h:inputText>
    </p:columns>
</p:dataTable> 

</h:form>

我这样做了dataTable,因为p:columns不接受p:cellEditor,我需要知道哪些列已更新,然后我创建了方法changeValor(Date fecha, Object enitidad, Integer fila)并且我调用了在f:ajax listener,但不要解雇 任何想法??? THX

1 个答案:

答案 0 :(得分:1)

你应该使用p:inputText和p:ajax并在p:ajax标签中添加process =“@ this”和事件。