2011-01-31 43 views
-2

動的にjsf dataTableを作成する必要があります。これは、列の数がと異なり、実行時に決定されることを意味します。 すべての例がわかります。jsf dataTableを動的に生成する

-SPD

     <ice:dataTable var="item" 
          value="#{section.rowDataModel}"> 
          <ice:columns value="#{section.columnDataModel}" 
           var="column"> 
           <f:facet name="header"> 
            <ice:panelGroup> 
             <ice:outputText value="#{column.columnName}" style="#{column.columnWidth}"/> 
            </ice:panelGroup> 
           </f:facet> 
           <!-- display the table cell values--> 
           <ice:panelGroup 
            style="text-align: center; white-space: nowrap;"> 
            <ice:inputText value="#{section.columnValue}" /> 
           </ice:panelGroup> 
          </ice:columns> 
         </ice:dataTable> 
+5

ご迷惑をおかけして申し訳ございません。これはコード生成マシンではありません。 –

+4

'QuestionNotFoundException'です。明確な問題を明記してください。正確にどの時点であなたは苦労していますか? – BalusC

+0

@Andrew:私は例のコードを尋ねました、正しい方向に私を指しているURLになる可能性があります。私たちはお互いを助けるためにここにいると思った。私はこの問題を解決しました。 – SPD

答えて

3

タグあなたは、データテーブルをバインドすることができます。

<h:dataTable id="myTable" bind="#{myBean.table}"... /> 

豆:

public class MyBean() { 
    private HtmlDataTable dt; 

    public MyBean() { 
     initTable(); 
    } 

    private initTable() { 
     dt = new HtmlDataTable(); 
     //Add here your columns using HtmlColumn 
     HtmlColumn hc = new HtmlColumn(); 

     //You can set colum values using ValueExpression 
     //And add column to table using getChildren().add(hc); 
     (...) 
    } 
    //Getters and setters 
} 

ValueExpressionの詳細についてはhereをご覧ください。

h:dataTableまたはrich:dataTableを自由に使用してください。 h:columnやrich:columnと同じですが、コンポーネント名はhereです。

1

巣cに試してみてください:forEachのか、UIを:(あなたがフェイスレットを使用している場合)の繰り返しとTRをレンダリング(外側のループ)、TD(内側のループ)は、自分でたぶん

関連する問題