簡體   English   中英

Primefaces cellEditor必需的inputText

[英]Primefaces cellEditor required inputText

我有一個PrimeFaces p:dataTable ,其中一列類型為p:cellEditor ,帶有p:inputText字段。

此inputText應該是必需的,但是如果我將required =“ true”設置為空,則什么也不會發生,也不會顯示任何消息。 包括上述在內的表格仍然被提交。

這是我的代碼,尤其是<p:column headerText="Data Value">部分:

<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:inputText字段為空,就不應該提交表單。

我也嘗試使用h:inputText而不是p:inputText獲得相同的結果。

我試圖在p:dataTable之外添加所需的h:inputText ,該效果可以按預期工作,並且只要表單為空即可阻止提交表單。

關於如何在p:cellEdit獲得必需的p:inputText字段的任何想法?

根據rion18的建議。 我正在檢查我的支持bean是否設置了所有值。 只有設置了所有值,才會顯示“提交”按鈕。 這就是我最終這樣做的方式:

<h:form id="my-form">
    <p:dataTable var="dataItem" rowIndexVar="rowIndex" value="#{backingBean.dataList}" draggableRows="true" editable="true" editMode="cell">
    <p:ajax event="cellEdit" update=":#{p:component('submit-button-group')}" />
        <p:column>
...
        </p:column>
    </p:dataTable>
    <div>
        <h:panelGroup id="submit-button-group">
            <h:commandLink action="#{backingBean.submit()}" rendered="#{backingBean.isAllValuesSet()}">Submit</h:commandLink>
        </h:panelGroup>
    </div>
</h:form>

在我的后備bean中,我有一個簡單的函數可以遍歷dataList:

public boolean isAllValuesSet(){
    for(DataItem item:dataItems){
        if(item.getValue()==null || item.getValue().isEmpty()){
            return false;
        }
    }
    return true;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM