微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Primefaces dataScroller 具有子组件的动态 ID

如何解决Primefaces dataScroller 具有子组件的动态 ID

我正在尝试增强应用程序中的一部分代码。我目前正在用这样的代码列出一组评论

   <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 使用 调整我的代码

谢谢。

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。