0

我有一个扩展数据表,它由后端的 Arraylist 填充,其中 id 作为主键。展开行时,必须在另一个表中搜索特定于 id 的行,并且必须显示所有行。当我试图将 id 作为 value 属性中的参数传递时,它会给出类转换异常。

这是 XHTML 代码

<h:form>
    <p:dataTable var="data"
        value="#{trackerList.trackerList}">
        <f:facet name="header">Summary</f:facet>
        <p:column style="width:16px">
            <p:rowToggler />
        </p:column>

        <p:column headerText="ID">
            <h:outputText value="#{data.id}" />
        </p:column>

        <p:column headerText="Status">
            <h:outputText value="#{data.status}" />
        </p:column>

        <p:column headerText="Created Time">
            <h:outputText value="#{data.createdTime}" />
        </p:column>

        <p:column headerText="Created By">
            <h:outputText value="#{data.createdby}" />
        </p:column>

        <p:column headerText="Updated By">
            <h:outputText value="#{data.updatedby}" />
        </p:column>

        <p:rowExpansion>
            <p:dataTable var="metadata" value="#{statusList.getScenarioStatusList(data.id)}">
                <p:column headerText="Requirements">
                    <h:outputText value="#{metadata.requirements}" />
                </p:column>

                <p:column headerText="Exam Name">
                    <h:outputText value="#{metadata.examName}" />
                </p:column>

                <p:column headerText="Status">
                    <h:outputText value="#{metadata.status}" />
                </p:column>

            </p:dataTable>
        </p:rowExpansion>
    </p:dataTable>
</h:form>

请帮忙。

4

1 回答 1

0

我认为您需要在 p:datatable 标记内定义以下行,并将 id 作为参数传递,而不是子数据表中的 #{statusList.getScenarioStatusList(data.id)} 您只需执行 value = "#{yourBean.scenarioStatusList}"。在 loadLists(data.id) 方法中填充scenarioStatusList。

<p:ajax event="rowToggle" listener="#{yourBean.loadLists(data.id)}"  />
于 2017-08-16T19:26:10.610 回答