Editar múltiples filas en Struts2 jQuery Grid a través de Inline Edit

The struts2-jQuery grid offers a wide variety of edit features. But for one of our requirements, the Out-of-the-Box 'Edit' feature in this grid is not suitable. we want to customize it as follows.. 

Nuestros requisitos son :

  1. El usuario debe poder editar más de 1 fila a la vez: de acuerdo con la implementación predeterminada predeterminada, después de cada edición de fila, el usuario debe realizar una operación de guardar (presionando la tecla Intro o haciendo clic en el botón Guardar) antes de continuar para editar la siguiente fila
  2. Mover entre filas usando TAB para editar
  3. Una operación ‘Bulk / Batch Save’ que podría enviar todos los datos de las filas editadas a mi acción y desde allí podemos hacer una operación de base de datos de Bulk Save

    Nuestro enfoque :

Personalización 1 : Traiga los botones ‘Editar / Cancelar’ en la primera columna en todas las filas (No hay botones para guardar en cada fila). Al hacer clic en Editar, la fila en particular se vuelve editable.
Personalización 4 : trae un nuevo botón de imagen ‘Guardar por lotes’ en la barra de herramientas de la cuadrícula
Personalización 5 : al hacer clic en ‘Guardar por lotes’, recostackr todos los datos de las filas editadas (junto con la identificación) y recibirlos en acción como matrices para realizar la operación de la base de datos de ‘Actualización por lotes’

 We got our inspiration from the 'Custom Edit' posted @ www.trirand.com/blog/jqgrid/jqgrid.html 

** ¿Alguien ha cumplido con requisitos similares o ha hecho personalizaciones similares a la Cuadrícula de Struts2-jQuery? **

 I am surprised that the grid does not offer this 'Multi Row Edit' by default. 

**

Actualización 1:

**

En el proceso de implementación de una función personalizada de ‘Ahorro de lotes / lotes’ en la cuadrícula, tuvimos algunos problemas más … quería compartirlos con todos ustedes … mientras trabajamos para solucionarlos … aprecio si alguien pudiera lanzar punteros en ellos..

  1. Queremos actualizar la cuadrícula después de guardar los datos a través de nuestro botón personalizado “Guardar todo” de la barra de herramientas de la cuadrícula. Al hacer clic en este botón, estamos realizando una solicitud de publicación de Ajax para la acción que llevará a cabo guardar todos los datos modificados.

  2. Al navegar después de Editar (sin guardar), muestra alerta para guardar los datos modificados

  3. Impedir que la página se publique en la clase Acción cuando el usuario pulsa ‘Intro’ mientras edita una columna

  4. Agregar una checkbox personalizada y usar esos valores para la operación de eliminación personalizada (porque la checkbox generada a través de la opción Multiselección está causando problemas en la edición múltiple)

  5. Función de edición de reglas en S2J Grid para llamar a la validación de javascript personalizada

**

Actualización 2:

**

No pudimos identificar los bindKeys como se menciona en una de las respuestas a continuación, mientras tanto, aquí está nuestro enfoque. Todavía hay muchos extremos abiertos para esta implementación, y todavía estamos trabajando en ello.

Paso 1: Use lo siguiente en la cuadrícula para crear nuestros botones personalizados ‘Editar’ y ‘Cancelar’ para cada fila de datos onGridCompleteTopics="createbuttons" , aquí createbuttons fue nuestra función personalizada de jScript escrito.

  $.subscribe('createbuttons',function(event,data) { var ids = jQuery("#gridtable").jqGrid('getDataIDs'); for(var i=0;i < ids.length;i++) { var cc = ids[i]; var rowData = jQuery('#gridtable').jqGrid('getCell',cc,'name'); edit = ""; cncl = ""; jQuery("#gridtable").jqGrid('setRowData',ids[i],{Buttons:edit+cncl}); } }); 

Paso 2: Se agregó un botón personalizado a la cuadrícula, esta será una función javascript escrita personalizada que recostackrá todos los datos de las filas editadas y hará una publicación de Ajax en nuestra clase de Acción Struts2. A partir de ahí, creamos una matriz de esta entrada para pasarla al procedimiento de Oracle y realizar la operación DB (Insertar / Actualizar) dentro del procedimiento (utilizando FORALL INSERT / UPDATE)

 navigatorExtraButtons="{ saveall:{ title:'Save Alls', onclick:function(){call_function_save()} } }" 

Paso 3: Agregamos el siguiente código a todas las celdas del cuadro de texto para evitar la publicación de la página cuando se pulsa en Enter

  

Mantendré a todos informados sobre nuestro progreso, pero hay un nuevo desafío al que nos enfrentamos ahora, para el cual he publicado otra pregunta aquí y aquí.

Creo que necesitas mirar la edición en inline aquí e implementar bindKeys que puedes encontrar aquí . Déjame saber si tienes problemas para implementarlo.

 bindKeys Parameters: { onEnter: null, onSpace: null, onLeftKey: null, onRightKey: null, scrollingRows : true } 

Hola amigos. Obtuve la solución para el problema anterior utilizando la edición en línea. Guardar por lotes:

El guardado por lotes es posible con el script java. utilizando el script java, leemos todos los valores de la cuadrícula y luego se envía a través de la red a nuestra clase de acción

Gracias,

Si alguna ayuda en la encoding te lo enviaré.

    Intereting Posts