p:cellEditor
의 한 열에 p:inputText
필드가있는 PrimeFaces p:dataTable
이 있습니다.Primefaces cellEditor required inputText
이 inputText가 필요하지만 required = "true"로 설정하고 입력을 빈 상태로두면 아무런 메시지도 표시되지 않습니다. 어쨌든 위 양식을 포함한 양식이 제출됩니다.
<h:form id="my-form">
<p:dataTable var="dataItem" rowIndexVar="rowIndex" value="#{backingBean.dataList}" draggableRows="true" editable="true" editMode="cell">
<p:ajax event="rowReorder" update="@form"/>
<p:column headerText="Order Position">
<h:outputText value="#{rowIndex+1}" />
</p:column>
<p:column headerText="Data Name">
<h:outputText value="#{dataItem.name}" />
</p:column>
<p:column headerText="Data Value">
<p:cellEditor>
<f:facet name="output"><h:outputText value="#{dataItem.value}" /></f:facet>
<f:facet name="input"><p:inputText required="true" requiredMessage="Please insert a value" id="valueInput" value="#{dataItem.value}" style="width:100%"/></f:facet>
</p:cellEditor>
</p:column>
</p:dataTable>
<div>
<h:commandLink action="#{backingBean.submit()}">Submit</h:commandLink>
</div>
<h:messages id="validateMsg" />
</h:form>
제출 h:commandLink
는 Ajax 호출되지 않습니다 :
여기에 내 코드, 특히 <p:column headerText="Data Value">
부분입니다. 그러나 필자의 의견으로는 필수 필드 인 p:inputText
이 비어있는 한 양식을 제출해서는 안됩니다.
p:inputText
대신 h:inputText
을 사용해 보았는데 같은 결과가 나타납니다.
예상 한대로 작동하는 p:dataTable
외부에 필요한 h:inputText
을 추가하려고했는데 양식이 비어있는 한 양식을 제출할 수 없습니다.
p:inputText
필드를 p:cellEdit
에 입력하는 방법에 대한 아이디어가 있으십니까?
확실하지하지만
: 여기에 내가이 일을 결국 방법 rowged "update =": growl "/> (": growl "을 메시지 구성 요소로 대체하십시오.) –
또한'@ form'과 일치하지 않는 결과가 있습니다. '@ this'를 사용하거나'p : ajax'에있는 테이블 id를 직접 참조하십시오. – kolossus
답장을 보내 주셔서 감사합니다! @form 업데이트를 id 값으로 변경해보고 Ajax 이벤트 'cellEdit'도 사용했지만 작동하지 않습니다. 필수 필드가 비어 있긴하지만 표시되지 않은 메시지 외에 더 나쁜 것은 제출되는 양식입니다. – Vincent