2012-01-11 8 views
0

私のプロジェクトをPrimeface 2.2から3.0にアップグレードしました
私はDatatableの問題に直面しています。私は今、私が選択した行が別のDataTableに、私は{#」などの値を使用していることのDataTableに使用されるように、その値が、私はリストを移入していますし、選択した行を配列primefaces3.0データテーブルの選択と値のプロパティ

<p:dataTable id="datavalues" value="#{bean.list}" 
         var="o" paginator="true" rows="10" 
         selection="#{bean.selected1}"   
          rowKey="#{o.property1}" > 

に保存されたDataTableをしたいしていますbean.selected1} "と#{bean.selected2}としての選択も、この表から選択された値が必要です。

<p:dataTable id="table4" var="o" value="#{bean.selected1}" 
       rows="10"   
       selection="#{bean.selected2}"   
        rowKey="#{o.property2}"   
       > 

私が得た例外は次のとおりです。

[Lcom.packagedirectory.beans.beanHelper; cannot be cast to java.util.Collection 

リスト、selected1、selected2はbeanHelperクラスのすべてのプロパティです。 このコードは完全に2.2で動作していました。その値は配列でもあり、選択も配列です。

答えて

0

プリムフェイス2.2では、選択によって自動的にBeanの値が更新されていましたが、これはすべての状況では望ましくない可能性があります.3.0では、ajaxのポストバックのために<p:ajax>タグをdataTable内のrowSelectイベント。

<p:dataTable id="table1" ... > 
    <p:ajax event="rowSelect" update="formid:table1 formid:table2" oncomplete="dlg.show()" /> 
    ... 
</p:dataTable> 

<p:dataTable id="table2" ... > 
    ... 
</p:dataTable> 

最初のdataTableを選択すると、2番目のdataTableのサーバーポストバックと部分的なページ更新がトリガーされます。

+0

あなたのお返事ありがとうございます。私のデータセットは異なる.xhtmlページにあります。異なるページのIDを更新する方法 – curious

+0

例外を含む編集が表示されなかったので、これはbeanHelperクラスのコードの問題である可能性があります。あなたのコードを見ることなく、私は言うことができません。 –

0

<p:dataTable>selectionMode="multiple"を追加し、2番目の<p:dataTable>selectionMode="single"を追加してください。

+0

2番目のデータテーブルから複数のアイテムを選択する必要があります。 – curious

+0

@curiousの場合、 'selected1'と' selected2'は 'List'でなければなりません –

関連する問題