通过选择复选框启用和禁用组件

Naw*_*awa 6 jsf primefaces jsf-2

我有组件,我正在尝试禁用下面的panelGrid.

<h:selectBooleanCheckbox id="checkboxId" value="#{bean.checked}">
    <p:ajax update="panelId" event="click"/>                                    
</h:selectBooleanCheckbox>
<h:panelGrid id="panelId" rendered="#{!bean.checked}">
    <h:outputLabel>some text</h:outputLabel>
    <h:outputLabel>#registrationBB.registrationModel.homeAddress.actualAddressMathWithRegistration}</h:outputLabel>
</h:panelGrid>
Run Code Online (Sandbox Code Playgroud)

因此,单击复选框不起作用.检查指示符甚至不出现在复选框组件和值bean上:checked未发送到服务器.我也尝试过使用.出现检查指示但面板未刷新

如何通过复选框使用更新权限?

Mar*_*ark 13

下面的例子就是我的工作:

<h:form>
    <h:selectBooleanCheckbox id="checkboxId" value="#{indexBean.checked}" >
        <p:ajax event="change" update="panelId" />
    </h:selectBooleanCheckbox>

    <h:panelGrid id="panelId" style="border:solid 1px black;" >
        <h:outputLabel rendered="#{!indexBean.checked}" >some text</h:outputLabel>
        <h:outputText rendered="#{!indexBean.checked}" value="some text 2" />
    </h:panelGrid>
</h:form>
Run Code Online (Sandbox Code Playgroud)

我不得不将<p:ajax>事件从单击更改为更改以使复选框工作.另一个问题是如果你没有渲染<h:panelGrid>无法找到更新的id,那么你想将渲染的属性移动到你内部的组件<h:panelGrid>但仍然更新<h:panelGrid>.