2012-06-18 3 views
6

私はクリック可能な行でdatatable可能なprimefacesを使用しており、選択した行をバッキングBeanから設定する方法を見つける必要があります。私のデータテーブル定義があるprimefacesデータテーブルのバッキングBeanから選択した行を設定します

<p:dataTable id="cablePathTable" var="cablePath" value="#{commonTableBean.cableLazyModel}" rows="100" 
     selectionMode="single" selection="#{commonTableBean.selectedCablePathTblRow}" 
     rowIndexVar="rowIndex" widgetVar="datatableVar" 
     emptyMessage="---"> 
<p:ajax event="rowSelect" process="@this" update=":form:portFieldset" /> 

<p:column headerText="No"> 
    <h:outputText value="#{cablePath.column1}" /> 
</p:column> 
<p:column headerText="Port A"> 
    <h:outputText value="#{cablePath.column4}" /> 
</p:column> 
<p:column headerText="Port B"> 
    <h:outputText value="#{cablePath.column5}" /> 
</p:column> 

は、私はしかし、誰成功し、次のようなアプローチを試してみました。

public void test(){ 
    DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("form:cablePathTable"); 
    dataTable.setRowIndex(2); 
} 

そして、私はXHTMLページにテストbutoonを追加しました::

<p:commandButton process="@this" update=":form:cablePathTable" value="set2row" action="commonTableBean.test"/> 

しかしnothigは、データテーブルに変更され、選択が変更されていない...私はメソッドを追加したBeanをバックアップするには

この問題を解決する方法を教えてください。

答えて

7

selection="#{commonTableBean.selectedCablePathTblRow}"の後ろに値を設定するだけです。

public void test(){ 
    selectedCablePathTblRow = cablepath; 
} 
+0

D'Oh!それは簡単でした!どうもありがとうございました! –

+0

ようこそ。あなたはここで新しいので、問題を解決するのに役立ったときはいつも、答えをマークすることを忘れないようにしてください。また、[回答の受け取りはどのように受け付けますか?](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235) – BalusC

+1

istこれは、ページが表示されますか?コマンドボタンを押すことなく? – roel

関連する問題