有人可以解释为什么以下最小的例子不会评估所需的元素?或者它是“错误”的方式,还有一个我不知道的更好的方式。
我知道我的问题与此问题类似: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>
答案 0 :(得分:0)
如果您使用的是客户端验证,则必须将属性ajax="false"
和validateClient="true"
添加到commandButton
你可以在这里看到一个例子: http://www.primefaces.org/showcase/ui/csv/event.xhtml