JQGrid:动态创建附加id的RESTFul URI

JQGrid:动态创建附加id的RESTFul URI,jqgrid,Jqgrid,在提交jqGrid表单时,我想在URL REST样式中添加“/theRecordId”,用于编辑用例。这不起作用: jQuery("#noteList").jqGrid('navGrid','#pager', {addtitle:"Add New Note", clearAfterAdd: true}, {addCaption:"Edit Note", mtype:"PUT" ,onclickSubmit: function(rp_ge, postdata) {

在提交jqGrid表单时,我想在URL REST样式中添加“/theRecordId”,用于编辑用例。这不起作用:

jQuery("#noteList").jqGrid('navGrid','#pager',
    {addtitle:"Add New Note", clearAfterAdd: true},
    {addCaption:"Edit Note", mtype:"PUT"
        ,onclickSubmit: function(rp_ge, postdata) {
            rp_ge.url = editurl + '/' + postdata.id;  }
     },

    {addCaption:"Add New Note", mtype:"POST"}, 
    {}, 
    {}, 
    {}
  );
这将导致“/[myurl]/undefined”被发送到服务器(其中[myurl]是正确的初始editurl)。
因此,动态url操作似乎有效,但“id”未定义。“id”属性的名称应该是什么?我可以看到作为表单参数传递的是'id'。我还尝试了noteId,它是显示网格时传入数据中的名称,也是我用于jsonReader.id的名称。也不管用。这个属性名应该来自哪里?

您可能使用了为旧版本的jqGrid创建的示例。jqGrid的当前版本使用
{gridid}\u id
作为
id
值的属性。例如,如果您使用的网格的
id
noteList
,则
noteList\u id
onclickSubmit
postdata
参数的id属性名称。重要的是要了解,稍后在调用
onclickSubmit
beforesmit
之后,属性的名称将从
noteList\u id
更改为
id
(请参阅)

您可以将
onclickSubmit
的代码修改为

onclickSubmit:function(选项、postdata){
options.url=editurl+'/'+encodeURIComponent(postdata[this.id+“_id]”);
}

我加入了JavaScript函数的调用,以确保URL在
id

中使用任何字符时都能正确编码。非常感谢Oleg,它工作得非常好!jqGrid确实是一个功能强大、用途广泛的框架,但也很难学习!我希望你很快就会有一本书:)不幸的是,我在删除用例方面仍然有同样的问题。返回/未定义:{mtype:“DELETE”,onclickSubmit:function(options,postdata){options.url=editurl+'/'+encodeURIComponent(postdata[This.id+“_id”]);}@user2309409:Delete表单的
onclickSubmit
postdata
格式非常简单:如果是单选,它只是
id
值,如果使用
multiselect:true
,它是所选行的逗号分隔id。因此,如果您不使用jqGrid的
multiselect:true
选项,那么您可以使用
options.url=editurl+'/'+encodeURIComponent(postdata)。我建议另外使用
serializeDelData:function(){return”“;}
。看见