Primefaces DataTable cellEdit需要inputText未评估

时间:2015-06-18 08:12:01

标签: jsf jsf-2 primefaces

有人可以解释为什么以下最小的例子不会评估所需的元素?或者它是“错误”的方式,还有一个我不知道的更好的方式。

我知道我的问题与此问题类似:Primefaces cellEditor required inputText。对我来说,似乎解决方案更多的是解决方法,而不是解决此问题的有效方法。所以是的,任何想法如何处理这个?

代码:

 <p:dataTable id="ruleTableID" var="rule" value="#{rC.rules}" widgetVar="rowsTable" 
     rows="20" editable="#{rC.editable}" 
     editMode="cell" paginator="true" 
     paginatorPosition="bottom" paginatorTemplate="{Save}"
     emptyMessage="#{t['rule.empty']}">
  <p:ajax event="cellEdit" update=":newRules:messages, :newRules:" />
  <p:column headerText="#{t['policy.registerNumber']}">
    <p:cellEditor>
      <f:facet name="input">
        <p:inputText styleClass="ruleInputText" value="#{rule.registerNr}" required="true" maxlength="4">
          <f:validateLength minimum="4" />
          <f:validateRegex pattern="([A-Z\d]{4})" />
          <p:clientValidator/>
        </p:inputText>
      </f:facet>
      <f:facet name="output">
        <h:outputText value="#{rule.registerNr}" />
      </f:facet>
    </p:cellEditor>
  </p:column>

  <f:facet name="{Save}">
    <p:commandButton id="saveButton" value="#{t['button.save']}" action="#{rC.saveRules}" update=":newRules" rendered="#{rC.isAllValueSet}" />
   </f:facet>

</p:dataTable>

1 个答案:

答案 0 :(得分:0)

如果您使用的是客户端验证,则必须将属性ajax="false"validateClient="true"添加到commandButton

你可以在这里看到一个例子: http://www.primefaces.org/showcase/ui/csv/event.xhtml