jqGrid中的自定义删除功能

时间:2010-10-17 10:51:26

标签: asp.net-mvc asp.net-mvc-2 jqgrid

我正在尝试在jqGrid中自定义删除功能。

我已启用网格上的删除按钮

$("#myGrid").jqGrid('navGrid', '#pager',
    { add: true, addtitle: 'Add Customer',
        edit: true, edittitle: 'Edit Customer',
        del: true, deltitle: 'Delete Customer',
        refresh: true, refreshtitle: 'Refresh data',
        search: true, searchtitle: 'Apply filters', 
        addfunc: addForo, editfunc: editForo, 
        cloneToTop: true
    },
    {}, // default settings for edit
    {}, // default settings for add
    {}, // default settings for delete
    { closeOnEscape: true, multipleSearch: true, closeAfterSearch: true }, // search options
    {} // default settings for view
);

然后我添加了(感谢这个post)以下代码

$("#bDelete").click(function () {
    // Get the currently selected row
    toDelete = $("#myGrid").jqGrid('getGridParam', 'selrow');
    $("#myGrid").jqGrid(
        'delGridRow',
        toDelete,
        { url: '/Foro/Delete/' + toDelete, mtype: 'post', reloadAfterSubmit: false }
    );
});

现在,当我点击删除按钮时,会出现一个对话框,要求删除确认。但是如果我点击删除按钮,我将收到以下错误消息

alt text

我哪里错了?

1 个答案:

答案 0 :(得分:5)

如果我理解你是正确的,你想要修改用于删除行的url,以便该行的id将成为url的一部分。你可以更容易地做到这一点:

$("#myGrid").jqGrid('navGrid', '#pager',
    // define navGrid options and paraneters of Edit and Add dialogs
    { // now define settings for Delete dialog
      mtype: "POST", reloadAfterSubmit: false,
      onclickSubmit: function(rp_ge, postdata) {
          rp_ge.url = '/Foro/Delete/'+ postdata;
      },
      serializeDelData: function (postdata) { return ""; }
    },
    // search options
    // ...
);

关于onclickSubmit我们可以修改url并定义serializeDelData我们可以清除“POST”消息的正文。我主要在服务器端使用RESTfull服务并使用mtype: "DELETE"。在真正需要清除身体的情况下。

另一个选择是使用delfunc,就像您已经使用editfuncaddfunc一样。在大多数情况下,并不真正需要使用此类功能,并且可以通过其他方式实现相同功能。