簡體   English   中英

在primefaces中進行單元格編輯后,CellEdit事件無法正常工作

[英]CellEdit event not working after cell edit in primefaces

我試圖在Primefaces中通過單元格創建可編輯的DataTable,但在編輯單元格后,事件未提交且我的代碼無法檢測到newValue,並且堆棧跟蹤中沒有錯誤或登錄

這是我的代碼:

XHTML:

<p:dataTable id="ListC"
    value="#{recruitmentProcessMB.candidateListInProcess}"          
    var="candid" rowKey="#{candid.idCandidate}"
    style="border:0px; " editable="true" editMode="cell">

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

    <p:column headerText="Date d'entretien">
        <p:cellEditor>
            <f:facet name="output">
                <h:outputText value="#{candid.interviewDateCandidate}">
                    <f:convertDateTime type="date" dateStyle="short"
                        pattern="dd/MM/yyyy" timeZone="Europe/Paris" />
                </h:outputText>
            </f:facet>
            <f:facet name="input">
                <p:calendar id="date"
                    value="#{candid.interviewDateCandidate}"
                    navigator="true" pattern="dd/MM/yyyy" mask="true" />
            </f:facet>
        </p:cellEditor>
    </p:column>

    <p:column id="vRH" headerText="Validation Par RH " disabledSelection="#{candid.currentTask!='InterviewAndValidationByRH'}">
    <p:cellEditor >
        <f:facet name="output">
        <h:outputText
            value="#{candid.decisionOfRh}" />
            </f:facet>
        <f:facet name="input">
             <h:selectOneMenu id="rhDecision" style="display: inline-block;"
                        value="#{candid.decisionOfRh}"
                        disabled="#{candid.currentTask!='InterviewAndValidationByRH'}" >
            <f:selectItem itemLabel="Selectionner..." />
            <f:selectItem itemLabel="Accepté" itemValue="Accepté"/>
            <f:selectItem itemLabel="Refusé" itemValue="Refusé"/>
        </h:selectOneMenu>
        </f:facet>
        </p:cellEditor>
    </p:column>
</p:dataTable>

豆:

public void onCellEdit(CellEditEvent event) {
            FacesContext context = FacesContext.getCurrentInstance();
            Candidate c = context.getApplication().evaluateExpressionGet(
                    context, "#{candid}", Candidate.class);

            System.out.println("+++++++++++ "+c.getFirstNameCandidate()+" "+c.getNameCandidate());
            System.out.println("*********** "+event.getNewValue().toString());
            logger.info(c.getInterviewDateCandidate().toString());
}

嘗試在標簽p:ajax中添加屬性immediate="true" ,並調用my bean方法

<p:ajax  event="cellEdit" 
         update="ListC"
         immediate="true"
         listener="#{recruitmentProcessMB.onCellEdit}"
         process="@this" 
/>

暫無
暫無

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

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