JQGrid:动态创建附加id的RESTFul URI
在提交jqGrid表单时,我想在URL REST样式中添加“/theRecordId”,用于编辑用例。这不起作用: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) {
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”“;}
。看见