jQGrid 动态 URI 关于格式化程序操作的"格式选项"



实际上,我已经在jQGrid上实现了一个REST解决方案,用于从NavGrid中POST、PUT和DELETE数据

现在,在每行的操作按钮中,我尝试做同样的操作,但我不知道如何在默认格式化程序操作上生成动态url。

我试试这个:

colModel : [
          {name:'actions', index:'', width:80, fixed:true, sortable:false, resize:false,
              formatter:'actions', 
              formatoptions:{ 
                  url: function(cellValue, rowId, rowData){
                      return restPutURL + '/' + rowId ;
                  },
                  mtype: 'PUT',
                  keys:true,
                  delOptions:{
                      url: restDelURL,
                      recreateForm: true, 
                      beforeShowForm:beforeDeleteCallback,
                      onclickSubmit :function(params, postdata) {
                        params.url += '/' + postdata;
                      }
                  }
              }
          },
          { ...my cols.. }
       ]

删除操作可以,但编辑不起作用。当一行被保存时,jQGridsend函数作为URI:的一部分

system/function%20(cellValue,%20rowId,%20rowData)%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log(cellValue);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20/system/function%20(cellValue,%20rowId,%20rowData)%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20

如何创建动态URI?或者,如何将编辑行的id添加到URI?

如果使用当前版本的jqGrid,则可以在保存行之前使用beforeSaveRow回调进行一些操作,如修改URL。不幸的是,formatter: "actions"不允许您设置beforeSaveRow回调,但您仍然可以使用$.jgrid.inlineEdit来执行此操作。相应的代码可能类似

$.extend(true, $.jgrid.inlineEdit, {
    beforeSaveRow: function (option, rowId) {
        option.url = restPutURL + '/' + rowId;
    }
});

$.extend(true, $.jgrid.inlineEdit, {
    beforeSaveRow: function (option, rowId) {
        option.url = this.p.editurl + '/' + rowId;
    }
});

最新更新