欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

jqgrid saveRow 使用

最编程 2024-06-28 07:53:22
...

调用 saveRow 的时候,发现 后台保存成功了, 可是 前端 的 grid 没有把保存的内容给 刷新。 原来有回调的 方法的:

//第四步:定义保存操作,通过键值对把编辑的数据传到后台,如下
    //{upperLimit: value1,lowerLimit:value2} 
    function saveParam(rowId) {  
        var parameter = {
            url : "sensor/setParam", //代替jqgrid中的editurl
            mtype : "POST",
            extraparam : { // 额外 提交到后台的数据
                    "param1" : "1",
                    "param2" : "2"
             },
            successfunc : function(XHR) { //在成功请求后触发;事件参数为XHR对象,需要返回true/false;
                alert(XHR.responseText);//接收后台返回的数据
                if (XHR.responseText == "false") {
                    alert("上限值不能小于下限值");
                    return false; //返回false会使用修改前的数据填充,同时关闭编辑模式。
                } else {
                    alert("编辑成功");
                    return true; //返回true会使用修改后的数据填充当前行,同时关闭编辑模式。
                }

              }//end successfunc
         }//end paramenter
        jQuery('#list').saveRow(rowId, parameter);
    }

同时 我在使用的时候 , 发现 需要 额外 将 extraparam : // 额外 提交到后台的数据 这里 填写入。 如果不填的话。 前端并没有获取到 数据的。 特别是 后台 Java spirngmvc 使用 一个 实体接受的时候。 同时 jqgrid 某些 列,往往我们 都使用了 格式化了,估计传递到了 后台就 没有 获取到 对应该的 一些列的内容。因此 需要自己 手写入 额外的参数了。 就是 这里的参数 名称 和 原来 grid 列的名称 有相同, 也是会覆盖 原来的。 下面是我的使用 代码:

 var savePostUrl = _ctxPath + "/pfmcePlan/hrEffPfmcePscore/pscore/save.do";

            var extraparam = { mypsid: mypsid, title: title, type: type, hrEffPfmcePlaneecptId: hepPlaneecptid };
            jQuery(grid_selector).jqGrid('saveRow', editRowid, saveCallbackGrid, savePostUrl, extraparam);
            console.log('5555>>>>>>>>>');
// 表格行 保存,回调
function saveCallbackGrid(data) {

    var result;
    if (data.responseText) {

        var resultString = data.responseText;
        console.log('>>>>>>>>>' + resultString);

        //string 转json 
        try {
            result = JSON.parse(resultString);
        } catch (e) {// 必须捕获异常,否则会报错的

        }

        console.log(result + '###>>>>>>>>>' + result.success);

        if (result.success) {

            showNotice(result.message);
            return true;// 覆盖 原来表格的内容,

        } else {
            showError(result.message);
            return false;

        }

    } else {
        showError("保存失败");
        return false;
    }



}