jqGrid删除行与确认对话框

时间:2013-10-03 15:56:39

标签: javascript jquery jqgrid struts2

我正在使用struts2-jquery-jqgrid。我在网格的列中有按钮。我需要在用户点击删除时实现确认对话框。

解决方案:

//在列中添加按钮和事件点击的JAVASCRIPT

$.subscribe('gridCompleteTopics2', function() {
var ids = jQuery("#gridtable2").jqGrid('getDataIDs');
for(var i=0;i < ids.length;i++){
    var fila = jQuery("#gridtable2").jqGrid("getRowData", ids[i]);      
    link = "<button id='opener' onClick='deleteRecord(" + fila["idplanilla_det"]        + ");'>Open Dialog</button>";   
    jQuery("#gridtable2").jqGrid('setRowData',ids[i],{acti:link});  
}   
 });

function deleteRecord(id) {
alert(id);    
$("#dialogo").dialog("open");
}

$(function() {
$( "#dialog" ).dialog({
    autoOpen: false,
      resizable: false,
      height:140,
      modal: true,
      buttons: {
        "ACEPTAR": function() {
          $( this ).dialog( "close" );
        },
        "CANCELAR": function() {
          $( this ).dialog( "close" );
        }
      }
    });    
   });

<div id="dialog" title="Empty the recycle bin?">

这些项目将被永久删除,无法恢复。你确定吗?

   

工作。

1 个答案:

答案 0 :(得分:1)

首先,您不应该有多个具有相同ID的控件。在这里,您要创建ids.length - 许多ID为opener的按钮。相反,为按钮分配一个类,例如opener

然后,您应该在创建按钮后移动.opener click功能,如下所示:

$.subscribe("gridCompleteTopics2", function () {
    var ids = jQuery("#gridtable2").jqGrid("getDataIDs");
    for (var i = 0; i < ids.length; i++) {
        var fila = jQuery("#gridtable2").jqGrid("getRowData", ids[i]);
        link = "<button id='opener'>Open Dialog</button>";
        jQuery("#gridtable2").jqGrid("setRowData", ids[i], { acti: link });
    }

    $(".opener").on("click", function() {
        $("#dialog").dialog("open");
    }); 
});