在更新数据表时,如何在嵌套在h:dataTable中的ui:repeat中获取h:outputText?

时间:2019-06-20 18:57:01

标签: jsf arraylist jsf-1.2

所以我代码的相关部分是:

<h:panelGroup id="pnlGrp" style="padding:10px" width="100%">
    <div>
        <h:dataTable id="availableCrList"
                       value="#{searchData.availableCrList}"
                       var="avail"
                       varStatus="thisVarStatus" rows="#{searchData.rowsPerPage}"
                       sortColumn="#{searchData.crSortColumnName}"
                       sortAscending="#{searchData.crAscending}" style="width:100%;">
            <h:column>
                <ui:repeat value="#{avail.crRsnCdList}"
                            var="crRsnCd"
                            varStatus="status">
                    <h:outputText value="#{crRsnCd}&lt;br /&gt;"
                                    title="#{avail.crRsnDescList[status.index]}"
                                    escape="false"/>
                </ui:repeat>
            </h:column>
        </h:dataTable>
    </div>
</h:panelGroup>

我正在使用旧版应用程序,并且我的目标是显示代码列表,这些代码指示为什么此表中给定项目可能完成或被取消等原因。标题将转换为悬停工具提示,其中会显示每个代码的描述。

现在,我设法使该代码适用于单个代码没问题,但是由于从String切换为String列表,尝试使其正常工作一直是一场噩梦。

现在,使用上面的代码,它会第一次正确显示代码,但是当我通过搜索新值更新数据表时,所有其他列(未显示)都正确显示,而RsnCd列继续显示相同第一次搜索得到的数据。

作为示例,我第一次搜索记录时,数据表可能会拉高:

Row1:A1
Row2:A1
Row3:A1
     A3
Row4:A1

第二次搜索仅希望看到的数据:

Row1:
Row2:
Row3:
Row4:
Row5:
Row6:
Row7:

但是我得到了:

Row1:A1
Row2:A1
Row3:A1
     A3
Row4:A1
Row5:
Row6:
Row7:

真的不确定我是否能充分/理解地解释这一点。

1 个答案:

答案 0 :(得分:0)

我通过更改解决了这个问题

<ui:repeat value="#{avail.crRsnCdList}"
           var="crRsnCd"
           varStatus="status">
    <h:outputText value="#{crRsnCd}&lt;br /&gt;"
                  title="#{avail.crRsnDescList[status.index]}"
                  escape="false"/>
</ui:repeat>

收件人:

<ice:column>
    <ice:repeat value="#{avail.crRsnCdList}"
                varStatus="status">
        <ice:outputText value="#{avail.crRsnCdList[status.index]}&lt;br /&gt;"
                        title="#{avail.crRsnDescList[status.index]}"
                        escape="false"/>
    </ice:repeat>
</ice:column>

我尝试删除该值,但它停止显示任何内容。