2013-11-09 3 views
2

- это то, что у меня есть сетка, динамически жанр, я имею в виду, что я добавляю пустые строки в сетку, сначала считал, что использовать праймеры в редакторе ячеек, так что значение хранится в списке фанов Список, работает, но проблема, У меня есть календарь, когда я выбираю один и хранится, он хранится в списке, я проверял, что он не выполняет событие ajax, вы теряете значение даты.Редактор Календарь в файле Primefaces 3.5 потерян?

<p:commandButton value="Añadir dia" update="dataTable" actionListener="#{regDPNL.registrarNuevoDia}" /> 

<p:dataTable id="dataTable" var="dpnl" value="#{regDPNL.listdpnl}" paginatorPosition="top" 
rows="20" rowIndexVar="rowIndex" editable="true" editMode="cell" 

    <p:ajax event="cellEdit" listener="#{regDPNL.onCellEdit}" />     

    <p:column width="25%"> 
     <f:facet name="header"> 
     <h:outputText value="NOMBRE" /> 
     </f:facet> 
     <p:cellEditor> 
     <f:facet name="output"><p:inputText value="#{dpnl.nombre}" /></f:facet> 
     <f:facet name="input"><p:inputText value="#{dpnl.nombre}" /></f:facet> 
     </p:cellEditor> 
    </p:column> 

    <p:column width="20%"> 
     <f:facet name="header"> 
     <h:outputText value="DESDE" /> 
     </f:facet> 
     <p:cellEditor> 
     <f:facet name="output"><p:inputText value="#{dpnl.fechaDesde}" /></f:facet> 
     <f:facet name="input"><p:calendar value="#{dpnl.fechaDesde}" pattern="dd/MM/yyyy" /></f:facet> 
     </p:cellEditor> 
    </p:column> 

    <p:column width="20%"> 
     <f:facet name="header"> 
     <h:outputText value="HASTA" /> 
     </f:facet> 
     <p:cellEditor> 
     <f:facet name="output"><p:inputText value="#{dpnl.fechaHasta}" /></f:facet> 
     <f:facet name="input"><p:calendar value="#{dpnl.fechaHasta}" pattern="dd/MM/yyyy" /></f:facet> 
     </p:cellEditor> 
    </p:column> 

    <p:column width="5%"> 
     <f:facet name="header"> 
     <h:outputText value="ELIMINAR" /> 
     </f:facet> 
     <p:commandButton icon="ui-icon-editar" title="Delete Periodo" style="background:#fff"> 
     </p:commandButton> 
    </p:column> 
</p:dataTable> 

Java код:

private List<DetallePeriodoBean> listdpnl = new PeriodoNoLaborable(); 
private DetallePeriodoBean detallePeriodoNoLaborable = new ArrayList<DetallePeriodoBean>(); 

public void registrarNuevoDia() {     
    detallePeriodoNoLaborable = new DetallePeriodoBean(); 
    this.listdpnl.add(detallePeriodoNoLaborable); 
} 

public void onCellEdit(CellEditEvent event) { 
    Object oldValue = event.getOldValue(); 
    Object newValue = event.getNewValue();  
    if(newValue != null && !newValue.equals(oldValue)) { 
     System.out.println("==> Old: " + oldValue + ", New:" + newValue); 
    } 
} 

http://s2.subirimagenes.com/imagen/previo/thump_8690487captura.png

+1

Ваш значимый код вопроса основан в колонке Дата. Пожалуйста, удалите другие столбцы, поскольку они не имеют отношения к вопросу. Appart от этого, является ли ваш 'dataTable' завернут в' h: form'? –

ответ

0

В фасетов имени выхода используйте тег час: outputText вместо р: inputText

0

убедитесь, что вы используете java.util.date для ваших полей даты (например, fechaDesde и т. д.) в вашем компоненте.

1

У меня возникла эта проблема.

Решение очень простое (после того, как много испытаний и ошибок) Вы должны добавить идентификатор атрибута в теге, , например:

<p:calendar id="date_selector" value="#{dpnl.fechaHasta}" pattern="dd/MM/yyyy" /> 
Смежные вопросы