jsf - Primefaces dataScroller 具有子组件的动态 id

标签 jsf dynamic foreach primefaces datascroller

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

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

谢谢。

最佳答案

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

关于jsf - Primefaces dataScroller 具有子组件的动态 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68386484/

相关文章:

jsf - 如何选择 javax.faces.model.SelectItem

javascript - 宽度等于动态高度平方

java - 从 jsf 组件调用 javax.el.MethodExpression

c# - 将类型传递给泛型方法(嵌套泛型)

ruby - 如何在 Ruby 的 block 中动态包装代码?

PHP 5.4 ForEach 疯狂吗?

c# - 如何从 foreach gameobject.transform 获取最后几个元素

C# list.remove 在 foreach 循环中抛出枚举操作错误

eclipse - 如何在我的 xhtml 页面中重新激活代码辅助(eclipse 3.5、jboss tools 3.1、jsf 1.2)

jsf - Primefaces SummaryRow 渲染标题列标题