2012-08-24 14 views
5

Używam datatable i otrzymuję liczbę kolumn dynamicznie. Starałem się umieścić powtórki wewnątrz jak w ten sposób:jsf powtórz wewnątrz datatable

<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> 

który siedzi jest tablicą dwa wymiary, moja myśl była, że ​​DataTable powinien pętla nad siedzi wiersze i powtórz pętle na każdej wartości wewnątrz każdego wiersza (który jest obiektem o nazwie Sit with get method: getId).

Problem polega na tym, że otrzymuję pusty stolik. Wydaje się, że var "sit" nie otrzymuje wartości. Czy problem może polegać na tym, że datatable ignoruje elementy, których nie ma w kolumnie?

Odpowiedz

0

Prostym rozwiązaniem byłoby

<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> 

Jeśli masz zmienne kolumn w rzędzie to może bałagan ze stylami css. Na przykład 5 kolumn w pierwszym wierszu i 3 w wierszu 2, w jaki sposób je stylujesz. Tak, jak to widzę, chcesz pokazać miejsca w teatrze zajęte polem wyboru.

Możesz spróbować użyć ui: repeat z ul, li lub div zamiast z tabelą. podejście.