我有一个包含多行的panelGrid。有些行是用c:forEach生成的,因为ui:repeat,p:dataTable和p:dataList不会'渲染(ui:repeat JSF 2.0 cannot render iterate p:row primefaces)。
我的目标是更新迭代中生成的行(并在更新后大小和内容不同),但我没有可以引用的id的组件。不,我不能使用@form。
<p:commandButton value="Update" action="#{someBean.someAction}" process="someThing" update=" ??? ">
<p:panelGrid>
<p:row>
...
</p:row>
<c:forEach var="projectDto" items="#{someBean.someDtos}" varStatus="i">
<p:row>
...
</p:row>
</c:forEach>
</p:panelGrid>
有没有办法实现这个目标?也许在迭代周围有某种虚拟组件?
强尼
P.S。:我已经在Primefaces论坛(http://forum.primefaces.org/viewtopic.php?f=3&t=22999)上问过这个问题。答案(感谢jordandenison)真的是“专有的”,没有人(包括我在半年内)会明白这是什么。所以也许还有另一种方式。
答案 0 :(得分:0)
将panelGrid绑定到bean属性。
<p:panelGrid binding="#{someBean.panelGrid}"/>
然后在java代码中添加行。
Row row = new Row();
HtmlOutputText text = new HtmlOutputText();
text.setValue("text");
column = new Column();
column.getChildren().add(text);
row.getChildren().add(column);
panelGrid.getChildren().add(row);
Row,Column和PanelGrid应该来自org.primefaces .... packages。