0

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

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] 是正确的初始编辑 URL)。所以动态 url 操作似乎有效,但 'id' 是未定义的。'id' 属性的名称应该是什么?我可以看到作为表单参数传递的是“id”。我还尝试了 noteId,它是显示网格时传入数据中的名称,也是我用于 jsonReader.id 的名称。也没有用。这个属性名应该从哪里来?

4

1 回答 1

2

可能您使用了为旧版本的 jqGrid 创建的示例。当前版本的 jqGrid{gridid}_id用作 value 的属性id。例如,如果您id使用的网格是id参数的id 属性的名称。重要的是要理解,稍后调用and之后,属性的名称将从 更改为(参见代码部分)。noteListnoteList_idpostdataonclickSubmitonclickSubmitbeforeSubmitnoteList_idid

您可以将代码修复为onclickSubmit以下

onclickSubmit: function (options, postdata) {
    options.url = editurl + '/' + encodeURIComponent(postdata[this.id + "_id"]);
}

我包括了对 JavaScript 函数encodeURIComponent的调用,以确保在id.

于 2013-06-23T07:20:19.223 回答