`

jqgrid保存或者删除成功后调用自定义方法的解决方法

 
阅读更多
参考: http://www.debugease.com/javascript/200760.html

开始处理方式
1. 工具栏方式, 定义navGrid变量的时候,
下面配置删除后处理配置:
{
                    ......
                    del: true,
                    delicon: 'icon-trash red',
                    ......
}
......
{
                    //delete record form
                    recreateForm: true,
                    /*beforeShowForm: function (e) {
                        var form = $(e[0]);
                        if (form.data('styled')) return false;
                        form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />');
                        $.GridUtils.style_delete_form(form);
                        form.data('styled', true);
                    },*/
                    beforeShowForm: $.GridUtils.beforeDeleteCallback,
                    afterSubmit:function(data,postdata){
                        alert("afterSubmit");
                        return [true,""]; //返回0表示正常
                    },
                    afterComplete:function(data,postdata){
                        alert("afterComplete");
                        //这里不用返回
                    }
                }


2. 如果是colModel里面配置:
{
                name: 'myac', index: '', width: 80, fixed: true, sortable: false, resize: false,
                formatter: 'actions',
                formatoptions: {
                    keys: true,
                    delOptions: {recreateForm: true, beforeShowForm: $.GridUtils.beforeDeleteCallback,afterSubmit:function(data,postdata){
                        alert("afterSubmit1");
                        return [true,""]; //返回0表示正常
                    },
                        afterComplete:function(data,postdata){
                            alert("afterComplete1");
                            //这里不用返回
                        }},
                    editformbutton:true, editOptions:{recreateForm: true, beforeShowForm:$.GridUtils.beforeEditCallback,afterShowForm:$.GridUtils.afterEditCallback}
                }
            }


非改源码扩展
1. 在初始化表格的配置加上自定义的方法
afterSubmit:function(data,postdata){
            alert("afterSubmit");
            return [true,""];//原样返回.
        },
        afterComplete:function(data,postdata){
            alert("afterComplete");
        }


2. 重写事件后要处理的方法
function afterSubmitCallback(data,postdata){
            //用于提交事件完成后处理
            alert("afterSubmitCallback");
            var $t=this;
            if($.isFunction($t.p.afterSubmit)){
                return $t.p.afterSubmit(data,postdata);
            }else{
                return [true,""];//原样返回.
            }

        }
function afterCompleteCallback(data,postdata){
            //用于提交事件完成后处理
            alert("afterCompleteCallback");
            var $t=this;
            if($.isFunction($t.p.afterComplete)){
                $t.p.afterComplete(data,postdata);
            }
        }


3. 改变调用的地方, 让他们调用同一处地方
工具条
{
                    //delete record form
                    recreateForm: true,
                    /*beforeShowForm: function (e) {
                        var form = $(e[0]);
                        if (form.data('styled')) return false;
                        form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />');
                        $.GridUtils.style_delete_form(form);
                        form.data('styled', true);
                    },*/
                    beforeShowForm: $.GridUtils.beforeDeleteCallback,
                    afterSubmit: afterSubmitCallback,
                    afterComplete:afterCompleteCallback
                }

colModel:
{
                name: 'myac', index: '', width: 80, fixed: true, sortable: false, resize: false,
                formatter: 'actions',
                formatoptions: {
                    keys: true,
                    delOptions: {recreateForm: true, beforeShowForm: $.GridUtils.beforeDeleteCallback,afterSubmit: afterSubmitCallback,
                        afterComplete:afterSubmitCallback},
                    editformbutton:true, editOptions:{recreateForm: true, beforeShowForm:$.GridUtils.beforeEditCallback,afterShowForm:$.GridUtils.afterEditCallback,afterSubmit: afterSubmitCallback,
                        afterComplete:afterCompleteCallback}
                }
            }


如果后台要返回自己定义的成功或者错误信息, 那又如何显示呢?
1. controller返回一个对象:
@RequestMapping(value = "/saveGrid.do")
    @ResponseBody
    public ControllerContext saveGrid(HttpServletRequest request, @RequestBody Map<String,Object> params) {
        System.out.println(JSONUtil.toJSONString(params));

        ControllerContext context=new ControllerContext();
        context.addMessage("保存成功.");
        context.setSuccess(true);
        context.setStatus(168);
        return context;
    }

2. 这个返回的信息保存在:data.responseJSON, data.responseText里面, 可以自己使用.
分享到:
评论

相关推荐

    jqgrid全套示例代码

    5. **bin**:在ASP.NET中,这个文件夹用于存放编译后的程序集(DLLs),可能包括jqGrid相关的服务器端组件或自定义的业务逻辑代码。通过这些文件,开发者可以了解后端与jqGrid交互的方式。 6. **themes**:这个...

    jqGrid使用demo: 数据加载 增加, 修改, 删除, 还原, 撤销等

    在确认删除提示后,jqGrid会向服务器发送删除请求。服务器返回成功消息后,使用`delRowData`从表格中移除相应行。为了防止误操作,可以启用确认对话框。 五、还原与撤销 jqGrid提供了撤销功能,允许用户撤销最近的...

    jqgrid4.6.rar

    7. **自定义行为**:通过事件监听和回调函数,可以实现自定义的行为,比如在数据加载后执行某些操作,或在用户进行编辑、保存等操作时进行验证。 8. **国际化**:jqGrid 支持多语言,可以设置 `locale` 参数来切换...

    jqGrid资源包

    3. 在JavaScript中,通过jQuery选择器获取到表格元素,然后调用`.jqGrid()`方法进行初始化,设置各种选项,如列定义、数据源、分页参数等。 4. 可以通过`.navGrid()`方法添加导航栏,包括搜索、添加、编辑和删除等...

    jqgrid 表格的增删改查以及modal弹出框

    **增加(Add)**:在 jqGrid 中添加新记录通常通过调用 `editGridRow` 方法实现,但在这个项目中,可能会使用一个 modal 弹出框来收集用户输入的数据。当用户点击“添加”按钮时,一个模态窗口会打开,展示用于输入...

    利用jqGrid实现类似Excel录入功能

    对于更复杂的编辑场景,可以利用`navGrid`方法添加编辑、添加、删除和查看等导航按钮。 为了实现数据的保存,我们需要定义`saveRow`和`editRow`方法。这些方法会在用户完成编辑并提交时调用,负责将更改发送到...

    jqgrid应用

    - **编辑操作事件**:如`beforeSubmitCell`在提交编辑前执行,`afterSaveCell`在保存成功后执行。 4. **高级特性** - **分组网格**:通过`grouping`和`groupField`设置,可以对数据进行分组展示。 - **过滤与...

    jqGrid模板

    2. 初始化表格:通过JavaScript代码设置表格的列、数据源、分页参数等属性,然后调用jqGrid初始化方法创建表格。 3. 配置数据源:可以使用JSON、XML或数组等形式提供数据,jqGrid会自动解析并显示在表格中。 4. 添加...

    jqgrid简单前后台增删改查异调用实例

    2. **编辑**:jqGrid的`editRow`和`saveRow`方法用于编辑和保存行数据。后台接收到更新请求,根据传入的ID查找并更新数据。 3. **删除**:使用`delRowData`删除行,jqGrid会发送请求到后台,后台根据ID删除对应的...

    jqGrid表格插件

    - **社区支持**:jqGrid有活跃的社区和丰富的文档,遇到问题时更容易找到解决方案。 4. **应用场景** - **Web应用**:在企业级Web应用中,jqGrid常用于后台管理系统,展示和处理大量业务数据。 - **数据分析**:...

    深入研究jqgrid

    jqGrid提供了编辑、添加、删除和保存功能,可以通过设置`editurl`和`onEdit`、`onSave`等事件实现。 2. **自定义列**:除了预定义的列属性外,还可以通过`formatter`和`unformatter`定义自定义的列显示和输入格式。...

    前端项目-jqgrid.zip

    2. **示例和文档**:通常会有多个示例文件夹,展示不同功能的使用方法,以及详细的API文档,帮助开发者了解如何配置和调用jqGrid的各种功能。 3. **语言文件**:包含不同语言的翻译文件,用于实现多语言支持。 4. ...

    jquery.jqGrid-4.5.2.zip

    4. 调用jqGrid方法,如`$("#gridId").jqGrid()`启动插件。 五、进阶应用 1. **小工具栏**:通过插件实现自定义工具栏,如新增、删除、保存等操作按钮。 2. **树形视图**:支持树状数据结构展示,适用于层级关系的...

    jqGrid表格数据修改删除代码.zip

    `delGridRow`方法用于标记一行为待删除状态,然后调用`delRowData`或执行服务器请求来实际删除数据。同样,也需要处理服务器的反馈。 6. **事件处理**:在编辑和删除过程中,jqGrid触发多种事件,如`...

    jqgrid servlet demo

    7. **MVC设计模式**:尽管没有明确提及,但通常在Servlet应用中,Model(模型)代表业务逻辑和数据,View(视图)是用户界面,Controller(控制器)处理用户请求并调用模型方法。jqGrid可以视为视图的一部分,...

    jqgrid_demo

    7. **methods32.js**: 这可能是一个包含jqGrid方法的JavaScript文件,例如排序、编辑、删除、加载数据等操作。开发者可以通过调用这些方法来控制jqGrid的行为。 8. **jqgrid.html**: 这是最核心的文件,可能包含了...

    jqgrid实现图片上传功能(java版)

    文件上传成功后,你需要在服务器上选择一个合适的位置来保存文件。这可能涉及到文件路径管理、权限控制以及防止重复文件的问题。 - **返回响应** 服务器需要返回一个确认消息,告知前端文件已成功保存。这个消息...

    jqGrid表格数据修改删除代码

    编辑完成后,通过调用`saveRow`或`editRow`方法,将更改保存到服务器。在这个过程中,通常需要定义一个服务器端的处理函数来接收和处理更新的数据。 对于数据删除,jqGrid提供了一个`delRowData`方法,可以直接根据...

    jqGrid翻页时数据选中丢失问题的解决办法

    在使用jqGrid这种基于JavaScript的表格插件时,开发者可能会遇到一种常见的问题,即在进行异步加载数据(如翻页或搜索)时,用户选定的行数据在切换页面后会丢失,导致无法进行批量操作,如批量删除。这是因为jqGrid...

    jQuery tonytomov-jqGrid-v4.5.2 插件

    4. 调用jqGrid的API方法实现各种操作,如加载数据、刷新表格、编辑记录等。 例如,基本的HTML结构可能如下: ```html &lt;table id="jqGrid"&gt; &lt;div id="gridpager"&gt;&lt;/div&gt; ``` 然后在JavaScript中初始化jqGrid: ``...

Global site tag (gtag.js) - Google Analytics