我遇到的问题是,当我尝试更新不在同一个xhtml中的组件时。
有人知道该怎么办?
THX PD:我正在使用primefaces 3.2
抱歉我的英文
我认为我不能很好地解释。
我有一个带有tis结构的xhtml父亲:
<h:panelGrid id="tabla">
<h:form id="formTripu" prependId="false">
<h:panelGrid id="fichaTripulante">
<ui:include src="path1" />
<p:spacer height="5px" />
<p:tabView dynamic="false" cache="true">
<p:tab title="#{bundleTrip.datosAdministrativos}">
<ui:include
src="path2" />
</p:tab>
<p:tab title="Datos Operativos ">
<ui:include
src="path3" />
</p:tab>
我希望做的是例如在path1中我使用h:selectBooleanCheckbox之类的:
<h:selectBooleanCheckbox inmediate="true" id="checkExt"
value="#{bean.Obj.field}">
<f:ajax render="estadoTripu"
actionListener="#{bean.method}" />
</h:selectBooleanCheckbox>
estadoTripu位于path2(otherxthml,但形式相同)。
<p:panel>
<h:panelGrid id="datos" columns="5">
<p:column>
<h:selectOneMenu id="estadoTripu"
value="#{bean.Obj.Field2}">
<f:selectItems
value="#{bean.list}" var="item"
itemValue="#{item.id}" immediate="true"
itemLabel="#{item.desc}">
</f:selectItems>
</h:selectOneMenu>
</h:panelGrid>
</p:column>
</h:panelGrid>
</p:panel>
女巫在渲染中扮演a:ajax ????
thx everyone
答案 0 :(得分:1)
试试这个:(这是我从BalusC学到的一个技巧:))
将binding="#{components.mySelecOneMenu}"
添加到您的h:selectOneMenu
<h:selectOneMenu binding="#{components.mySelecOneMenu}" .....
这个按钮的样子(或多或少)
<h:commandButton value="doSomeThing">
<f:ajax render="#{components.mySelecOneMenu.clientId}"/>
</<h:commandButton>
将此添加到您的faces-config.xml
<managed-bean>
<description>Holder of all component bindings.</description>
<managed-bean-name>components</managed-bean-name>
<managed-bean-class>java.util.HashMap</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
这里有一些我建议你做的详细解释
答案 1 :(得分:0)
如果它们不在同一个xhtml中,你是否在另一个中包含一个?如果没有,只需更改页面,它就会显示正确的页面。
但我认为我没有正确理解你的问题。
请添加一些代码
答案 2 :(得分:0)
我发现组件应该是相同的形式,一个调用id从表单开始到组件,它首选每个panelgrid,panel等的id,因为你必须调用你想要渲染的每个组件englobe comoponent。