0

我有一个问题是,当我尝试更新不在同一个 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 中我使用 ah: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>  

Witch is paht in render of:ajax????

谢谢大家

4

3 回答 3

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>

这里有一些我只是建议你做的详细解释

如何打破clientID的暴政?

没有 bean 属性的 JSF 组件绑定

于 2012-05-30T10:38:20.463 回答
0

如果它们不在同一个 xhtml 中,您是否在另一个中包含一个?如果没有,只需更改页面,它将显示正确的页面。

但我认为我没有正确理解你的问题。

请添加一些代码

于 2012-05-30T09:29:33.987 回答
0

我发现组件应该采用相同的形式,调用 id 以形式开始到组件,它首选将 id 放置在每个面板网格、面板等,因为您必须调用要渲染的每个组件 englobe 组件。

于 2012-06-05T09:38:22.703 回答