【问题标题】:Custom Delete Function in jqGridjqGrid中的自定义删除功能
【发布时间】:2011-04-26 13:22:17
【问题描述】:

我正在尝试自定义 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 }
    );
});

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

我哪里错了?

【问题讨论】:

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


    【解决方案1】:

    如果我理解你是正确的,你想修改用于删除行的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 一样。在大多数情况下,这种功能的使用并不是真正需要的,可以通过其他方式实现。

    【讨论】:

    • 感谢您的帮助。有用。有没有办法得到调用的结果?这样我可以添加一些用户反馈。再次感谢
    • 好的,没问题。我在 docs wiki 上找到了 afterSubmit 事件
    • @Lorenzo:你指的是哪个反馈?在哪个电话之后?您指的是哪个“通话结果”(哪个通话)?
    • @Lorenzo:我还使用定义为function (response, postdata)afterSubmit 并使用jQuery.parseJSON(response.responseText); 解码从服务器发送的信息并添加/修改一个额外的隐藏列RowVersion,它表示数据并用于乐观并发处理。如果你也做某事吗?
    • 对于结果,我指的是对服务器端删除函数的 ajax 调用的结果。对于反馈,我的意思是要给用户的反馈。例如:“已删除行”或“无法删除该行,因为...”。我已经找到了如何使用 afterSubmit 事件来做到这一点。谢谢
    猜你喜欢
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    相关资源
    最近更新 更多