2012-06-18 12 views
6

Sto usando primefaces datatable con le righe cliccabili e ho bisogno di trovare il modo in cui impostare la riga selezionata da backing bean.Imposta la riga selezionata dal bean di supporto in primefaces datatable

C'è la mia definizione datatable:

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

ho cercato seguente approccio, ma senza successo. Metodo In backing bean ho aggiunto:

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

E ho aggiunto prova butoon alla pagina XHTML:

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

Ma nothig viene modificato sul DataTable, la selezione non è cambiata ...

Per favore qualche idea su come risolvere questo problema?

risposta

7

Basta impostare il valore dietro selection="#{commonTableBean.selectedCablePathTblRow}".

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

D'Oh! E 'stato così facile! Grazie mille! –

+0

Prego. Dato che sei nuovo qui, ti preghiamo di non dimenticare di contrassegnare la risposta accettata ogni volta che ha aiutato (la maggior parte) a risolvere il problema. Vedi anche [Come funziona l'accettazione di una risposta?] (Http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235) – BalusC

+1

è possibile farlo quando la pagina è indicata per? Senza premere un pulsante di comando? – roel

Problemi correlati