La cuadrícula contiene después del evento de guardar la fila "jqGridInlineAfterSaveRow" que funciona si edita o agrega una fila.

                //--Bind events...
            console.log('Bind events...');
            $("#jqGrid").bind("jqGridInlineAfterSaveRow",function (e, rowid, jqXhrOrBool, postData, options) {
                console.log('EVENT:jqGridInlineAfterSaveRow');
                var item = $(this).jqGrid('getLocalRow', rowid);
                console.log(item);
                console.log('BEFORE:');
                saveObject(item);
                console.log('AFTER:');
            }); 

¿Cuál es el nombre del evento para eliminar fila? necesito vincular mi función JS para eliminar fila.

ACTUALIZACIÓN 1 Estoy intentando seguir la opción ahora, pero no tuve suerte ...

                    }).jqGrid("navGrid", "#jqGridPager", {edit: false, add: false, del: false, refresh: false, view: false,search: false,
                                                      delfunc: function (rowids) {
                                                          console.log(rowids);
                                                      }
                                                     })

ACTUALIZACIÓN 2 Creo que el problema es con los botones de eliminación en el nivel de fila no en el pie de página ver la captura de pantalla [ingrese la descripción de la imagen aquí] [1]

                        data:rdata,
                    colModel: [
                        {
                            label: "",
                            name: "",
                            width: 70,
                            formatter: "actions",
                            formatoptions: {
                                keys: true,
                                editOptions: {},
                                addOptions: {},
                                delOptions: {                        delfunc : function (id){
                                    console.log(">>>>>>>>>>>>>>>>1");
                                }}
                            }       
                        },

ACTUALIZACIÓN 3 Según la entrada de Oleg, he cambiado el código de la siguiente manera:

                $("#jqGrid").bind("jqGridAfterDelRow",function (e, rowid, jqXhrOrBool, postData, options) {
                console.log('EVENT:jqGridAfterDelRow');
                console.log(rowid);
                var item = $(this).jqGrid('delRowData ', rowid);
                console.log(item);
                console.log('BEFORE:');

                console.log('AFTER:');
            });   

Pero ahora, no obtengo el objeto de fila eliminado ??? En realidad, necesito obtener algunos de los campos de la fila eliminada, p. CARNÉ DE IDENTIDAD. y la función de enlace anterior a su vez llamará a la función ajax del lado del servidor.

ACTUALIZACIÓN 4 Gracias a Oleg por apoyar más allá ... Aquí está el código que tengo mashup de una de las respuestas de él.

                        colModel: [
                        {
                            label: "",
                            name: "",
                            width: 70,
                            formatter: "actions",
                            formatoptions: {
                                keys: true,
                                editbutton : true, 
                                delbutton : true, 
                                editOptions: {},
                                addOptions: {},
                                delOptions: {
                                    onclickSubmit: function(options, rowid) {
                                        console.log("delOptions::onclickSubmit"); 
                                        var grid_id = $.jgrid.jqID(grid[0].id);
                                        var grid_p = grid[0].p;
                                        var newPage = grid[0].p.page;
                                        var rowdata = grid.getLocalRow(rowid);

                                        // DELETE GRID LOCAL ROW
                                        grid.delRowData(rowid);
                                        $.jgrid.hideModal("#delmod"+grid_id,
                                                          {gb:"#gbox_"+grid_id,jqm:options.jqModal,onClose:options.onClose});                                            

                                        if (grid_p.lastpage > 1) {// on the multipage grid reload the grid
                                            if (grid_p.reccount === 0 && newPage === grid_p.lastpage) {
                                                // if after deliting there are no rows on the current page
                                                // which is the last page of the grid
                                                newPage--; // go to the previous page
                                            }
                                            // reload grid to make the row from the next page visable.
                                            grid.trigger("reloadGrid", [{page:newPage}]);
                                        }

                                        return true;
                                    },
                                    processing:true
                                }
                            }       
                        },
0
dev.sforce 6 mar. 2017 a las 08:17

2 respuestas

La mejor respuesta

Puede usar "jqGridAddEditAfterComplete", que se activará después de eliminar filas por delGridRow, o puede usar " jqGridAfterDelRow " alternativamente, porque delGridRow llama a delRowData internamente y jqGridAfterDelRow se activará por delRowData.

0
Oleg 6 mar. 2017 a las 06:16

Para eliminar filas, use el fragmento de código siguiente: $ ('# gridId'). JqGrid ('delRowData', rowid);

0
Murad 6 mar. 2017 a las 05:23