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

时间:2015-01-29 12:50:08

标签: php jquery ajax jqgrid

当我从jqgrid中选择3行进行删除时,我希望弹出窗口显示为“删除所选3条记录”但正确显示“删除所选记录”。

以下是我为删除功能编写的代码。 目前它显示错误为“Uncaught TypeError:undefined不是函数”。

 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>");
            }
        };  

1 个答案:

答案 0 :(得分:0)

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

代码中的第二个问题:明确的错误。您可以使用selrow选项在多选模式下检测所有已删除行的 ids 。而不是你应该使用selarrrow选项,它是所选行的ID数组。或者,您可以使用以逗号分隔的删除ID列表来删除对话框中隐藏的#DelData隐藏文件。

因此,我建议您使用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

enter image description here

或喜欢

enter image description here

取决于删除行的数量。