agregar datos de un grid a otro en jquery

Iniciado por landerzx, 8 Enero 2013, 22:03 PM

0 Miembros y 1 Visitante están viendo este tema.

landerzx

hola...tengo un problema y esque ya no se que mas hacer......necesito que los datos que yo tengo dentro de un jqgrid al dar click a esa fila se pasen a otro grid que se encuentra alado del grid mencionado anterior mente porfavor ayudenme =(.......

EFEX

Consta de 2 pasos, primero obtener valores de la celda seleccionada y despues agregarlos al otro dgrid(no se si habra una forma mas facil para pasar valores entre dos dgrid), aqui tenes un ejemplo...
http://www.trirand.com/blog/jqgrid/jqgrid.html

Código (javascript) [Seleccionar]

jQuery("#m1").click( function() {
         var s;
         s = jQuery("#list9").jqGrid('getGridParam','selarrrow');   //Aqui hay que cambiar el metodo para que obtenga los valores de la linea seleccionada.
         alert(s);
});


Tambien se puede utilizando el evento onSelectRow.

Código (javascript) [Seleccionar]

jQuery("#gridid").jqGrid({
...
  onSelectRow: function(id){
      ...
  },
...
});


Y para agregar una nueva linea se utiliza el metodo addRowData.

Código (javascript) [Seleccionar]

jQuery("#grid_id").jqGrid('addRowData', rowid,  datos, posicion, );
GITHUB 

landerzx


silviokucharski

#3
Hola, estoy haciendo lo mismo que mencionan acá, pasar los datos de un grid a otro. Los datos visibles los copia perfectamente, pero el id que esta oculto, no lo pasa para la otra grilla, intente asignarle manualmente pero tampoco me funciono. Aca les paso el método.


$("#colSelecc").click(function(){
   //Traigo el array con los id de las filas seleccionadas
   var ids = $("#tablapedidos").jqGrid('getGridParam','selarrrow');
   //Si hay filas seleccionadas entro, sino no hace nada
   if(ids != null)
   {
       var i = ids.length - 1;
       //Recorro el array de ids para copiar cada fila al otro grid
       for (i; i >= 0; i--)
       {
           //Nombre de la tabla origen
           var $grid = jQuery("#tablapedidos");
           //Obtengo un objeto con los datos de una fila, esta línea
           //no trae el id de la fila
           var data = $grid.jqGrid('getRowData',ids[i]);
           //Le asigno el id porque la línea anterior no me lo trae
           data.item_id = ids[i];
           //Inserto en el grid destino
           $("#tablaproveedor").jqGrid('addRowData',0,data);
           //Quito la fila seleccionada del primer grid (origen)
           $grid.jqGrid('delRowData', ids[i]);
       }
   }
});


Cuando examino los datos de la otra grilla, no esta asignado un id (por ejemplo haciendo un alert(id) en el método onSelectRow).

Si alguno tiene idea como solucionar esto, le agradecería.

silviokucharski

Alguien que me dé una mano??? Todavia sigo con el mismo problema...

joanmd

Hola, lo único que necesitas hacer para resolver tu problema es lo siquiente:

Cambia el valor cero de esta linea
//Inserto en el grid destino
$("#myTable").jqGrid('addRowData', 0, data);

Por el id en la posición recorrida ids[ i ]
//Inserto en el grid destino
$("#myTable").jqGrid('addRowData', ids[ i ], data);


Saludos.

J.