2014-10-30 23 views
1

我有一個關於一個f的復位問題:selectOneMenu用於號碼:AJAX元素的P內:dataTable的使用行編輯模式。當我取消行編輯,在每場的所有變化(也其他F:selectOneMenu用於元件沒有號碼:AJAX)被正確地復位,除了一個F:selectOneMenu用於含有號碼:AJAX元件。號碼:selectOneMenu用於與號碼:阿賈克斯號碼:dataTable中不復位P上之後:AJAX rowEditCancel事件

如果我刪除了有關號碼:AJAX元素F:selectOneMenu用於的那樣好正確地重置。

任何意見,我的問題可能出現的地方?

下面是關於XHTML片段:

<h:form id="tradingPartnersForm"> 
    <p:dataTable id="tradingPartnerRow" styleClass="partnersTable" var="partnerText" 
     value="#{tradingPartners.tradingPartnerList}" editable="true" > 

    <p:ajax event="cellEdit" listener="#{tradingPartners.onRowEdit}" update=":messages" /> 
    <p:ajax event="rowEditCancel" listener="#{tradingPartners.onRowCancel}" update=":messages" /> 

    ... // other fields 

    <p:column headerText="#{someLabel}"> 
     <p:cellEditor> 
     <f:facet name="output"> 
      <h:outputText value="#{partnerText.rolle}" /> 
     </f:facet> 
     <f:facet name="input"> 
      <p:selectOneMenu value="#{partnerText.rolle}"> 
      <f:selectItems value="#{tradingPartners.partnerKindsMap.entrySet()}" var="partnerKindsEntry" itemValue="#{partnerKindsEntry.key}" itemLabel="#{partnerKindsEntry.value}" /> 
       <p:ajax event="change" execute="@this" update="l1group l2group" /> 
      </p:selectOneMenu> 
     </f:facet> 
     </p:cellEditor> 
    </p:column> 

    ... // other fields 

    <p:column style="width:32px"> 
     <p:rowEditor /> 
    </p:column> 
    </p:dataTable> 
</h:form> 
+0

1.你的問題說'f:selectOneMenu',但你的代碼說'p:selectOneMenu'。 2.它看起來類似於我以前遇到的問題,可能是它的一個缺陷。檢查**回答**這個問題。 http://www.stackoverflow.com/questions/10780093/primefaces-3-2-selsectonemenu-valuechangelistener-not-working – Lokesh 2014-10-30 09:22:22

+0

您好@Lokesh,感謝您對標題的更正。我還會看看另一個答案。 – hans 2014-10-30 09:28:18

回答

0

好吧,這是接縫排primefaces編輯取消事件的工作原理是正確的。問題是自制,並從AJAX調用出現了:

<p:ajax event="change" execute="@this" update="l1group l2group" /> 

在這裏其被內部選擇所使用的豆類的屬性經由新值被選擇之後的AJAX調用碰巧。所以在技術上,如果選擇在編輯被取消後重置,則顯示新選擇的值。

看來,這種行爲是可以改變的通過插入隱藏提起存儲豆初始屬性值:

<p:column headerText="#{vtdb['acquirepartners.column5']}"> 
    <h:inputHidden value="#{partnerText.rolle}" id="partnerTextRoleBackup" /> 
    <p:cellEditor> 
    <f:facet name="output"><h:outputText value="#{partnerText.rolle}" /></f:facet> 
    <f:facet name="input"> 
     <p:selectOneMenu value="#{partnerText.rolle}"> 
     <f:selectItems value="#{tradingPartners.partnerKindsMap.entrySet()}" var="partnerKindsEntry" itemValue="#{partnerKindsEntry.key}" itemLabel="#{partnerKindsEntry.value}" /> 
     <p:ajax event="change" execute="@this" update="l1group l2group" /> 
     </p:selectOneMenu> 
    </f:facet> 
    </p:cellEditor> 
</p:column> 

但此刻我對這種行爲沒有明顯的解釋!

相關問題