在 jqgrid 警告框中删除 3 个选定的记录

Delete 3 selected records in jqgrid alert box

当我 select 从 jqgrid 中删除 3 行时,我希望弹出窗口应显示为 "Delete Selected 3 Records" 但正确显示为 "Delete Selected Records".

以下是我为删除功能编写的代码。 目前它显示错误 "Uncaught TypeError: undefined is not a function".

 var ids= $("#jqgrid").jqGrid('getGridParam', 'selrow');
   var count=ids.length;

    var myDeleteOptions = {
        msg: "Delete selected"+count+"records?",
        afterComplete: function(response, id){
            //alert(response.responseText);
            var msg=response.responseText;
            var n =msg.search("Deleted");
            if(n>=0)
                $(".inner").html("<div class='alert alert-success fade in'><button class='close' data-dismiss='alert'>X</button><i class='fa-fw fa fa-thumbs-up'></i>  "+msg+" </div>");
            else
                $(".inner").html("<div class='alert alert-danger fade in'><button class='close' data-dismiss='alert'>X</button><i class='fa-fw fa fa-thumbs-down'></i>  "+msg+" </div>");
            }
        };  

您没有发布更完整的 JavaScript 您使用的代码。 jqGrid 的 delGridRow 方法有 msg 选项,但是您需要在 调用 delGridRow 方法之前直接动态设置选项 。这是第一个问题。

您代码中的第二个问题:明显的错误。您使用 selrow 选项检测多选模式下所有已删除行的 ids。而不是你应该使用 selarrrow 选项,它是所选行的 id 数组。或者,您可以使用 get comma-separated 从对话框的 #DelData 隐藏字段中删除 ID 的列表。

所以我建议您使用 beforeShowForm 回调而不是使用 msg 选项。在回调内部,您可以将新文本分配给 .delmsg

beforeShowForm: function ($form) {
    var ids = $form.find("#DelData>td").text().split(",");
    if (ids.length > 1) {
        $form.find(".delmsg").text("Delete selected " + ids.length + " records?")
    } else {
        $form.find(".delmsg").text("Delete selected record?")
    }
}

请参阅 the demo,它显示的对话框类似于

或喜欢

取决于删除的行数。