2012-07-19 71 views
7

pregunta simple, es difícil encontrar una respuesta:jqGrid: Cómo utilizar multiselect en diferentes páginas

Si trato de seleccionar una fila mediante programación, yo uso esto:

$('#grid').jqGrid('setSelection', rowId); 

El problema es que se solo selecciona filas en la página visible actual. Si rowId está en otra página, no se seleccionará.

Más información: Mi objetivo es seleccionar varias filas (repartidas en varias páginas) cuando la página se carga por primera vez.

Gracias, Rafael

PS: Este tipo tiene el mismo problema. Sin respuesta aún: jqgrid multiselect only selects rows on the current page, if paging is enabled. How to make it select rows across pages?

Respuesta

8

Derecha, jqGrid solo seleccionará las filas en la página actual. Para seleccionar otras filas, necesita mantener una lista de identificadores seleccionados y seleccionarlos manualmente.

Para hacer esto es necesario agregar código para su evento loadComplete para buscar la página actual y seleccione cualquiera de estas filas:

var ids = grid.jqGrid('getDataIDs'); 
for (var i = 0; i < ids.length; i++){ 
    if (selected[ids[i]] === true){ 
     grid.setSelection(ids[i], false); 
    } 
} 

También es necesario añadir código a sus onSelectRow y onSelectAll eventos para ajustar el contenido de selected cuando el usuario selecciona/deselecciona filas:

onSelectRow: function(rowid, status){ 
    selected[rowid] = status; 
    setSelectedDeviceCount(); 
}, 

onSelectAll: function(rowids, status){ 
    for (var i = 0; i < rowids.length; i++){ 
     selected[rowids[i]] = status; 
    } 
} 

ayuda eso?

+0

¡Muchas gracias! Desafortunadamente, el código no se puede usar de esta manera (¡es mi culpa, no la tuya!), ¡Pero la idea general me ayudó a solucionarlo! ¡Gracias! –

Cuestiones relacionadas