0

在我的场景中,我需要使用 ajax 从托管 bean 更改属性显示类型

<h:inputText id="text1" value="#{managedBean.value}" />
<h:selectOneRadio value="#{managedBean.option}">
    <f:selectItem itemValue="Yes" itemLabel="Yes" />
    <f:selectItem itemValue="No" itemLabel="No" />
    <f:ajax listener="#{managedBean.changeAttrDisplayType}" event="click" render="text1"/>
</h:selectOneRadio>

如果我在单选按钮中单击是,则属性(id=text1)将呈现为文本框,如果我单击否,则属性(id=text1)将呈现为标签。有可能吗?请指导我...

4

1 回答 1

2

是的!这个有可能!把你的h:inputTextand放在 ajax 事件中重新渲染. 将要渲染的条件放在相应的属性中,如下所示:h:outputLabelh:panelGrouph:panelGrouprendered

            <h:panelGroup id="changingPanel">
                <h:outputLabel id="id1"
                              rendered="#{managedBean.option == 'Yes'}"
                              value="This is label"/>
                <h:inputText id="id2" value="#{managedBean.input}"
                              rendered="#{managedBean.option == 'No'}" />
            </h:panelGroup>

            <h:selectOneRadio value="#{managedBean.option}">
                <f:selectItem itemValue="Yes" itemLabel="Yes" />
                <f:selectItem itemValue="No" itemLabel="No" />
                <f:ajax event="click" render="changingPanel"/>
            </h:selectOneRadio>

假设您希望在选择“是”和选择“否”outputLabel时显示。inputText

于 2013-06-11T10:00:14.223 回答