我的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"
但是对我不起作用。
答案 0 :(得分:1)
我看到要更新的所有组件都比要触发该更新的按钮在同一个h:form中。您是否尝试过使用update =“ @ form”?