0

我有一个带有 ah:selectOneMenu 的页面和一个数据表。我想根据我在 h:selectOneMenu 中选择的内容来加载/渲染/启用我的 h:datatable。这可能吗?

这是一些代码

<tr class="portlet-table-body" >
<td width="20%" class="porlet-padding-left"><h:outputText value="${operatorProgramBundle.NextGenerationWorkflow}" /></td>
<td width="450px">
    <h:selectOneMenu id="ngw" styleClass="portlet-dropdown"  value="${CRUDOperatorProgram.selectedNextGenWorkflow}">
        <f:selectItems value="${CRUDOperatorProgram.nextGenWorkflowList}" />
    </h:selectOneMenu>
</td>

<h:dataTable id="DispatchConfigurationCustom" columnClasses="portlet-table-same portlet-table-cell"
headerClass="portlet-table-same portlet-table-cell" value="#{CRUDOperatorProgram.workflowConfigList}" var="workflowConfig" width="100%" >
<h:column>
    <f:facet name="header">
        <h:outputText value="Include" />
    </f:facet>
    <h:selectBooleanCheckbox id="includeInd" value="#{workflowConfig.isIncludedInd}"/>
</h:column>
<h:column>
    <f:facet name="header">
        <h:outputText value="Automate" />
    </f:facet>
    <h:selectOneRadio id="onOff" value="#{workflowConfig.isAutomatedInd}">
        <f:selectItem id="onButton" itemLabel="On" itemValue="0" />
        <f:selectItem id="offButton" itemLabel="Off" itemValue="0" />
    </h:selectOneRadio>
</h:column>
</h:dataTable>
4

1 回答 1

2

鉴于您使用的是 JSF 2.x,只需<f:ajax>在下拉列表中使用以更新数据表的最近父级,并让数据表的rendered属性评估truefalse相应地取决于所选项目。

假设您只想在选择项目值“foo”时显示数据表,请执行以下操作:

<h:selectOneMenu value="#{bean.selectedItem}">
    <f:selectItems value="#{bean.availableItems}" />
    <f:ajax render="table" />
</h:selectOneMenu>

<h:panelGroup id="table">
    <h:dataTable rendered="#{bean.selectedItem == 'foo'}">
        ...
    </h:dataTable>
</h:panelGroup>
于 2012-11-17T02:13:22.063 回答