jqGrid:在“编辑”表单中添加“删除”按钮

时间:2013-06-09 00:10:02

标签: jqgrid

我是一个jqGrid新手。我需要在“编辑”表单中添加“删除”按钮。我能够添加按钮,它会按预期显示,包括确认对话框,但一旦按下我不知道如何引用原始行ID:

// Add a Delete button in Edit form:
    $.extend($.jgrid.edit, {
        bSubmit: "Submit",
        bCancel: "Cancel",
        width: 370,
        recreateForm: true,
        beforeShowForm: function () {
            $('<a href="#">Delete<span class="ui-icon ui-icon-circle-close"></span></a>')
                .click(function() {
                    if(confirm("Are you sure you want to delete this record?")) {
                        $("#projectList").jqGrid('delGridRow', row_id);
                    }
                }).addClass("fm-button ui-state-default ui-corner-all fm-button-icon-left")
                  .prependTo("#Act_Buttons>td.EditButton");
        }
    });

上面代码中的row_id没有定义..如何在代码中引用此处所选当前行的id?上面的函数当前与其他主要的jqGrid函数并行,例如$(“#projectList”)。jqGrid({..})。或者更好,我如何从这里挂钩到默认的jqGrid删除功能? 谢谢!

1 个答案:

答案 0 :(得分:0)

要获取beforeShowForm内部编辑行的rowid,您可以使用编辑表单中包含一些隐藏行的信息,这些行可能对您有所帮助。 “添加/编辑”对话框在隐藏行中具有输入字段,其id =“id_g”。输入字段包含编辑行的ID。添加对话框在字段中包含_empty字符串。

因此,您可以将beforeShowForm回调修改为

beforeShowForm: function () {
    var row_id = $("#id_g").val();
    ...
}

或以下

beforeShowForm: function ($form) {
    var row_id = $("#id_g", $form).val(), $self = $(this);
    ...
    $self.jqGrid('delGridRow', row_id);
    ...
}