我有一个扩展数据表,它由来自后端的Arraylist填充,其中id为主键。展开行时,必须在另一个表中搜索特定于id的行,并且必须显示所有行。当我试图在value属性中传递id作为参数时,它会给出类强制转换异常。
这是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>
请帮助。
答案 0 :(得分:0)
我认为您需要在p:datatable标记内定义下面的行,并将id作为参数传递,而不是在子数据表中的#{statusList.getScenarioStatusList(data.id)},您只需要执行value =&#34;#{ yourBean.scenarioStatusList}&#34 ;.在loadLists(data.id)方法中填充scenarioStatusList。
<p:ajax event="rowToggle" listener="#{yourBean.loadLists(data.id)}" />