用虚拟组件包裹多个p:行?

时间:2012-06-28 05:49:12

标签: jsf-2 primefaces

我有一个包含多行的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)真的是“专有的”,没有人(包括我在半年内)会明白这是什么。所以也许还有另一种方式。

1 个答案:

答案 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。