PrimeFaces中的单元格编辑为空

时间:2014-01-19 19:51:19

标签: java jsf primefaces

我遇到了一个问题:当我尝试编辑一个单元格时,我在 oldValue newValue 中得到 null 。这是XHTML的代码:

<h:form id="tabela">  
     <p:contextMenu for="tabelaPrzypomnien" widgetVar="cMenu">     
        <p:menuitem value="Edit Cell" icon="ui-icon-search" onclick="PF('carsTable').showCellEditor();return false;"/>    
        <p:menuitem value="Hide Menu" icon="ui-icon-close" onclick="PF('cMenu').hide()"/>    
    </p:contextMenu>
 <p:dataTable id="tabelaPrzypomnien" value="#{obslugaUzytkownikow.listaZadan}" var="zadania" rows="10" rowsPerPageTemplate="5,10,15"  
                 paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                 paginator="true" lazy="true" editable="true" editMode="cell" widgetVar="carsTable">   
<f:facet name="header">  
            In-Cell Editing  
        </f:facet>     

    <p:ajax event="cellEdit" listener="#{obslugaZadan.onCellEdit}"/>
        <p:column headerText="id grupy">  
            <h:outputText value="#{zadania.id_grupy}" />  
        </p:column>   

        <p:column headerText="Temat" sortBy="temat">  
               <p:cellEditor>  
                   <f:facet name="output">
                        <h:outputText value="#{zadania.temat}" />
                   </f:facet>  
                   <f:facet name="input">
                        <p:inputText value="#{zadania.temat}" style="width:96%" />
                   </f:facet>  
               </p:cellEditor> 
        </p:column>  

        <p:column headerText="Deadline" sortBy="deadline">  
            <h:outputText value="#{zadania.deadline}" />  
        </p:column> 

    </p:dataTable>  

和ObslugaZadan Bean,onCellEdit方法:

public void onCellEdit(CellEditEvent event)
     {  
            Object oldValue = event.getOldValue();  
            Object newValue = event.getNewValue();

            System.out.println(oldValue + " i druga: " + newValue + "    event: " + (String) event.getColumn().getHeaderText());

            if(newValue != null && !newValue.equals(oldValue))
            {  
                System.out.println("rsedtcyfvubi" + oldValue + " i druga: " + newValue);
            }  
        }

更新后的控制台信息: INFO:null i druga:null事件:Temat

所以:var事件不是null但oldValue和newValue为null,我不知道为什么!请帮忙! 顺便说一句,我有PF 4.0,Eclipse Kepler和GlassFish 4.0。我已经受够了......

1 个答案:

答案 0 :(得分:0)

我刚刚解决了同样的问题,因为我的DataTable.value绑定到了ManagedBean.getList()之类的函数,而不是绑定到ManagedBean的字段。

当我将DataTable.value更改为绑定到ManagedBean的字段时,它就可以工作。