【问题标题】:How do I get h:outputText inside of a ui:repeat nested in h:dataTable to update when the datatable is updated?如何在 ui:repeat 中获取 h:outputText 嵌套在 h:dataTable 中以在更新数据表时进行更新?
【发布时间】:2019-06-20 18:57:01
【问题描述】:

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

<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>

我在一个遗留应用程序中工作,我的目标是显示一个代码列表,说明此表中的给定项目可能已完成或取消等原因的原因。标题将转换为悬停工具提示,其中显示每个代码的说明。

现在,我设法让它适用于单数代码没有问题,但是自从从字符串切换到字符串列表之后,尝试让它工作就像一场噩梦。

现在使用上面的代码,它第一次正确显示代码,但是当我通过搜索新值更新数据表时,所有其他列(未显示)都正确显示,而 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:

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

【问题讨论】:

  • jsf 1.2 和 2.2 同时?你能详细说明你为什么使用这两个标签吗?它们是完全不同的实现,相隔大约 10 年
  • 我只使用 1.2,我只是添加了所有 JSF 标签以提高可见性。删除了错误的标签。

标签: jsf arraylist jsf-1.2


【解决方案1】:

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

<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>

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多