2012-02-21 88 views
5

Necesidad de capturar el evento rowSelect de una tabla de datos que tenga una selección de fila basada en casillas de verificación. El código es el siguiente:Evento RowSelect - Primefaces - dataTable

<p:ajax event="rowSelect" listener="#{articleBean.onRowSelect}" 
        oncomplete="articleBean.onSelection" /> 
<p:ajax event="rowUnselect" listener="#{articleBean.onRowUnselect}" 
        oncomplete="articleBean.onSelection" /> 
<p:column id="name" headerText="Select" selectionMode="multiple" 
        style="width:18px" /> 

Soy incapaz de entender el comportamiento. Cuando hago clic en la casilla de verificación por primera vez, se llama al método "onRowSelect". Cuando desactivo, "onRowUnselect" no se está llamando. Y también, el método "onRowSelect" se llama solo una vez para la grilla, como en, si hago clic en cualquier otra casilla de verificación, el evento no se activará. ¿Me estoy perdiendo algo? No puedo entender este comportamiento

Gracias, Shikha

+0

¿Funciona si actualiza la página después de la primera selección? –

+0

@Matt Sí, funciona para la primera selección después de actualizarse. –

+0

No veo ningún comando de actualización en su 'p: ajax'. Entonces solo el elemento actual será actualizado. Podría tratar de establecer 'update =" @ form "' si esto es posible en su caso. –

Respuesta

14

Como está utilizando dataTable con la selección de filas basada casilla a continuación, se debe reemplazar:

<p:ajax event="rowSelect" 
<p:ajax event="rowUnselect" 

Con el siguiente:

<p:ajax event="rowSelectCheckbox" 
<p:ajax event="rowUnselectCheckbox" 
+0

¿Existe también un evento para "seleccionar todo" a través de la casilla de verificación en el encabezado de la tabla de datos? Estos eventos 'rowSelectCheckbox' y' rowUnselectCheckbox' no funcionan en este caso. – Micer

+5

Está bien que el evento sea 'toggleSelect' (cuando la casilla de verificación del encabezado está activada) – Micer

Cuestiones relacionadas