更新(仅选择父面板)包含的多个输入对话框中包含的组件JSF,素面

时间:2018-10-17 15:58:57

标签: jsf primefaces widget

我的facelet .xhtml中有多个带有表单的对话框,每个对话框都有多种类型的输入。

当bean属性更改时(特别是当bean设置为new ... propertyDTO = new PropertyDTO();时,我想更新特定对话框的所有输入

然后必须清除propertyDTO的所有属性!!!

这是我的一个对话框视图...

<p:dialog header="Package Services" widgetVar="widgetDialogItems" 
    modal="true" showEffect="fade" hideEffect="fade" resizable="false" width="1060">

    <h:form id="dialogFormArticulosPackage">

        <p:fieldset id="fieldSetPackage" widgetVar="widgetFieldSetPackage" legend="Add Service" toggleable="true" toggleSpeed="500" >

            <p:panelGrid id="panelGridPackageOne" columns="2" >
                <p:outputLabel value="Code:" for="newCode" />
                <p:outputLabel value="Description:" for="newDescription" />
                <h:panelGrid columns="2" >
                    <p:inputText id="newCode" widgetVar="widgetnewCode"
                             disabled="true" 
                             value="#{mainbean.propertyDTO.newCode}" />
                    <p:commandButton icon="fa fa-search" immediate="true" 
                                     oncomplete="AnotherAction..." />
                </h:panelGrid>
                <p:inputText id="newDescription" widgetVar="widgetnewDescription"
                             disabled="true" 
                             value="#{mainbean.propertyDTO.newDescription}" />
            </p:panelGrid>

            <p:panelGrid id="panelGridPackageTwo" columns="3" >
                <p:outputLabel value="Main Service:" for="newMainService"/>
                <p:outputLabel value="Order:" for="newOrder" />
                <p:outputLabel value="New" for="newService" />

                <p:selectOneMenu id="newMainService" value="#{mainbean.propertyDTO.newMainService}" >
                    <f:selectItem itemLabel="No" itemValue="N" />
                    <f:selectItem itemLabel="Yes" itemValue="Y" />
                </p:selectOneMenu>
                <p:spinner id="newOrder" value="#{mainbean.propertyDTO.newOrder}" min="0"/>
                <p:commandButton icon="fa fa-plus"
                                 value="Add"
                                 id="newService" actionListener="#{mainbean.savePackage()}"
                                 title="Add Service To Package"
                                 update="@widgetVar(widgetFieldSetPackage)" >
                </p:commandButton>
            </p:panelGrid>

        </p:fieldset>

    </h:form>
</p:dialog>

按下带有id=newService按钮时,mainbean.savePackage()就是这样做的propertyDTO = new PropertyDTO();

我想更改对话框中的所有输入。

我正在尝试

update="@widgetVar(widgetFieldSetPackage) fieldSetPackage panelGridPackageOne panelGridPackageTwo"

是否可以更改特定p:panelGrid中包含的所有输入? 示例:panelGridPackageOne

编辑,根据建议:

update=":dialogFormArticulosPackage:fieldSetPackage:panelGridPackageOne :dialogFormArticulosPackage:panelGridPackageOne"

但是对我不起作用。

1 个答案:

答案 0 :(得分:1)

我看到要更新的所有组件都比要触发该更新的按钮在同一个h:form中。您是否尝试过使用update =“ @ form”?