0

我正在使用 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?">

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

工作。

4

1 回答 1

1

首先,您不应该有多个具有相同 ID 的控件。在这里,您正在创建ids.length带有 id 的 -many 按钮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");
    }); 
});
于 2013-10-03T16:21:17.920 回答