【问题标题】:Primefaces dataScroller with dynamic id for child componentPrimefaces dataScroller 与子组件的动态 id
【发布时间】:2021-07-15 00:30:08
【问题描述】:

我正在尝试增强我的应用程序中的一部分代码。我目前正在列出一组带有如下代码的 cmets:

   <c:forEach items="{myBean.items}" var="it" varStatus="st">
    <p:panel id="child_#{st.index}">...</p:panel>
    ...
   </c:forEach>

这允许我更新每个面板引用它的 ID,使用 我可以假设它是唯一的。但这在某种程度上是一种僵硬的方式,因为它迫使我一次加载整套项目。我想实现类似 的东西,以使其变得懒惰并能够按需加载,但如果我使用它,就像这样:

   <p:dataScroller value="{myBean.items}" rowIndexVar="st" var="it">
    <p:panel id="child_#{st}">...</p:panel>
    ...
   </p:dataScroller>

我得到一个 “找不到表达式 child_ ... 的组件”,我理解这是因为 'st' 的值在呈现面板组件的 JSF 阶段。 有没有可能的方法来实现这一目标?是否仍在使用 c:forEach o 使用 调整我的代码?

谢谢。

【问题讨论】:

    标签: jsf dynamic foreach primefaces datascroller


    【解决方案1】:

    p:dataScroller 是一个UIData 组件,它将通过为行索引添加前缀来为其子项创建唯一的ID。所以你可以简单地使用&lt;p:panel id="child"&gt;。在呈现的 HTML 中,第一行的 id 类似于 formId:dataScrollerId:0:child,第二行的 id 类似于 formId:dataScrollerId:1:child,依此类推。

    【讨论】:

    • 这真的很有帮助,解决了问题!谢谢。
    猜你喜欢
    • 2012-01-03
    • 2013-03-23
    • 1970-01-01
    • 2015-04-25
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 2014-07-14
    相关资源
    最近更新 更多