2012-06-18 9 views
6

Estoy utilizando las tablas de datos de las primeras caras con filas clicables y necesito encontrar la manera de configurar la fila seleccionada desde el bean de respaldo.Establecer la fila seleccionada del bean de respaldo en las tablas de datos de las caras principales

No es mi definición tabla de datos:

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

He tratado enfoque siguiente, pero sin éxito. En método de bean de respaldo He añadido:

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

Y he añadido butoon prueba a la página XHTML:

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

Pero nothig se cambia en la tabla de datos, la selección no ha cambiado ...

¿Alguna idea de cómo resolver este problema?

Respuesta

7

Simplemente configure el valor detrás de selection="#{commonTableBean.selectedCablePathTblRow}".

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

D'Oh! ¡Fue así de fácil! ¡Muchas gracias! –

+0

De nada. Como eres nuevo aquí, no olvides marcar la respuesta aceptada siempre que haya ayudado (la mayoría) a resolver el problema. Véase también [¿Cómo funciona la aceptación de una respuesta?] (Http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235) – BalusC

+1

¿Es posible hacerlo cuando la página se muestra? Sin presionar un botón de comando? – roel

Cuestiones relacionadas