2012-06-18 9 views
6

Ich benutze Primafaces Datatable mit anklickbaren Zeilen und ich muss Weg finden, wie ausgewählte Zeile von Backing Bean gesetzt.Setzen Sie ausgewählte Zeile von Backing Bean in Primzahlen Datentabelle

Es ist meine Datentabelle Definition:

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

ich versucht habe Ansatz folgen, aber ohne Erfolg. In Backing Bean Ich habe hinzugefügt Methode:

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

Und ich habe Test butoon zum XHTML-Seite hinzugefügt:

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

Aber nothig ist auf der Datentabelle, die Auswahl geändert hat sich nicht geändert ...

Bitte irgendwelche Ideen, wie man dieses Problem löst?

Antwort

7

Setzen Sie einfach den Wert hinter .

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

D'Oh! Es war so einfach! Vielen Dank! –

+0

Gern geschehen. Da Sie hier neu sind, vergessen Sie bitte nicht, die akzeptierte Antwort zu markieren, wann immer sie (am meisten) geholfen hat, das Problem zu lösen. Siehe auch [Wie funktioniert das Annehmen einer Antwort?] (Http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235) – BalusC

+1

ist es möglich, es zu tun, wenn Die Seite wird angezeigt für? Ohne eine Befehlsschaltfläche zu drücken? – roel

Verwandte Themen