簡體   English   中英

事件:不支持cellEdit primefaces數據表單元格編輯

[英]Event:cellEdit is not supported primefaces datatable cell edit

我正在嘗試通過單元格編輯來實現primefaces數據表。 與此處實現的類似:

http://www.primefaces.org/showcase/ui/datatableCellEditing.jsf

所以這是我的jsf數據表代碼:

<h:form>
<p:growl id="messages" showDetail="true"/>
<p:panel id="dataPanel">                
    <p:dataTable 
    id="imagesDataTable"
    var="cRImageData" 
    value="#{syncCenterBean.cRImageDataList}"
    widgetVar="imagesTable" 
    paginator="true"
    sortMode="multiple"
    rows="10"
    paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
    rowsPerPageTemplate="10,15,20,30" 
    paginatorAlwaysVisible="false"
            editable="true"
            editMode="cell">

        <p:ajax event="cellEdit" listener="#{syncCenterBean.onCellEdit}" update=":form:messages" />
        <p:column sortBy="#{cRImageData.imId}" headerText="ID" style="width:100px;text-align:center;">
            <h:outputText value="#{cRImageData.imId}" />
        </p:column>

        <p:column headerText="Image Name" style="width:180px;text-align:center;">
            <h:outputText value="#{cRImageData.imName}" />
        </p:column>

        <p:column headerText="Image Type" style="width:170px;text-align:center;">
             <p:cellEditor>  
                <f:facet name="output">
                    <h:outputText value="#{cRImageData.imType}" />
                </f:facet>  
                <f:facet name="input">  
                    <h:selectOneMenu value="#{syncCenterBean.cRImageTypeList}" style="width:100%">  
                        <f:selectItems value="#{syncCenterBean.cRImageTypeList}" var="imTypeId" itemLabel="#{imTypeId}" itemValue="#{imTypeId}" />  
                    </h:selectOneMenu>  
                </f:facet>  
            </p:cellEditor>
        </p:column>
        ...

這是我的back bean的代碼:

@ManagedBean(name = "syncCenterBean")
@RequestScoped
public class SyncCenterBean implements Serializable {

    ....

    List<CRImageData> cRImageDataList;
    List<CRImageType> cRImageTypeList;

    @SuppressWarnings("unchecked")
    public SyncCenterBean(){

        cRImageTypeList = getImageTypesDB(); //returns a populated list of objects
        cRImageDataList = getImageDataDB(); //returns a populated list of objects
    }
    ...
    public void onCellEdit(CellEditEvent event) {  
    Object oldValue = event.getOldValue();  
    Object newValue = event.getNewValue();  

    if(newValue != null && !newValue.equals(oldValue)) {  
        FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Cell Changed", "Old: " + oldValue + ", New:" + newValue);  
        FacesContext.getCurrentInstance().addMessage(null, msg);  
    }  
}

但是當我嘗試加載視圖時,我得到:

Caused by: javax.faces.view.facelets.TagException: .... Event:cellEdit is not supported. 

在線:

<p:ajax event="cellEdit" listener="#{syncCenterBean.onCellEdit}" update=":form:messages" />

您應該對此事件的數據表進行編輯

<p:datatable editable="true" editMode="cell" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM