2012-08-24 65 views
5

我正在使用数据表,我得到动态列数。我试图把重复里面像这样:jsf重复数据表内

<h:dataTable value="#{movieUserBean.sits}" var="row" 
     rowClasses="oddRows,evenRows" headerClass="header" 
     styleClass="table" cellpadding="5" cellspacing="0"> 

     <ui:repeat value="#{row}" var="sit"> 
      <h:column> 
      <h:selectBooleanCheckbox value= "#{movieUserBean.checked[sit.id]}"/> 
      </h:column> 
     </ui:repeat> 

它位于一个二维数组,我想到的是,数据表应该循环在位于行和重复遍历每个值中的每一行内(这是一个名为Sit with get method:getId的对象)。

问题是我得到一个空表。看起来像var "sit"没有获得价值。 问题是否可以通过datatable忽略不在列范围内的任何元素?

回答

0

的DynamicColumns简单的解决办法是

<table> 
    <ui:repeat value="#{movieUserBean.sits}" var="row"> 
    <tr> 
     <ui:repeat value="#{row}" var="sit"> 
      <td><h:selectBooleanCheckbox value= "#{movieUserBean.checked[sit.id]}"/></td> 
    </ui:repeat> 
    </tr> 
    </ui:repeat> 
</table> 

如果你有每排它可能会一团糟变量列与CSS样式。例如,第1行的5列和第2行的3列,你会如何设计它们。我看到它的方式,你想显示在一个复选框占用的剧院座位。

你可以尝试使用ui:repeat与ul,li或div来代替与表一起使用。做法。