2013-04-24 17 views
0

我有我的數據表此列,我想每次用戶添加或輸入 刪除一個角色,我測試,以驗證它是:驗證輸入的用戶添加或刪除角色數據表primefaces

<p:column headerText="Quantité" style="width:20%"> 
         <p:cellEditor> 
          <f:facet name="output"> 
           <h:outputText value="#{arti.qte}" /> 
          </f:facet> 
          <f:facet name="input"> 
          <h:panelGroup> 
            <p:inputText 
            value="#{arti.qte}" > 
           <p:ajax event="keyup" listener= "#{mvmtdepotMB.keyupQte}" /> 
           <f:validateDoubleRange minimum="0.1" maximum="#{arti.qtemax}" /> 
           </p:inputText> 
           <p:message for="qdf" /> 
          </h:panelGroup> 

          </f:facet> 
         </p:cellEditor> 
        </p:column> 

但KEYUP方法不會被調用和驗證不

我怎麼能做到這一點

回答

2

你應該檢測p:inputText內的keyup事件:

<p:inputText value="#{arti.qte}" onkeyup="validate()"/> 

,這是要執行p:remoteCommand

<p:remoteCommand name="validate" actionListener="#{mvmtdepotMB.keyupQte}"/> 

p:remoteCommandp:dataTable的。

如果你想傳遞參數給p:remoteCommand

onkeyup="validate([{name: 'name1', value: 'value1'}, {name: 'name2', value: 'value2'}]);" 

而且p:remoteCommand的ActionListener可以檢索這些通過:

FacesContext context = FacesContext.getCurrentInstance(); 
Map map = context.getExternalContext().getRequestParameterMap(); 
String name1 = (String) map.get("name1"); 
String name2 = (String) map.get("name2"); 
+0

感謝您的答覆,但我有一個#{} arti.qtemax關聯到每行數據表 – simonTifo 2013-04-24 22:50:11

+0

@simonTifo再次檢查出來。 – 2013-04-25 07:11:45

+0

好吧,我要去檢查它 – simonTifo 2013-04-26 19:49:39