2010-08-27 114 views
5

如何在jqGrid中使用Jquery模式确认?说的时候,我会提出我的条目就会弹出一个模式对话框并负责向服务器显示与该消息的名字..jQuery模态对话框和jqGrid

我的做法

$("#dialog-confirm").dialog({ 
      autoOpen:false, 
      resizable:false, 
      height:180, 
      modal:true, 
      buttons:{ 
       'Confirm': function(){ 
          var ids =jQuery("#list10").jqGrid('getGridParam','selarrrow'); 
           $.ajax({ 
            type: "POST", 
            url: "url&names="+ids, 
            data: JSON.stringify(ids), 
            dataType: "json" 
          }); 
           }, 
          'cancel': function(){ 
            $(this).dialog('close'); 
            } 
     } 
     }); 
     }); 

我的html:

<div id="dialog-confirm" title="Confirm"> 
     <p><span class="ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Are you sure want to cancel(or send this names)#names?</p> 
    </div> 

在那个对话框中,我需要发送这些名称......但是这种方法不会给我从我选择发送给服务器的网格中的名称。

回答

13

下面的代码可以做什么,你需要

$("#wics").click(function(){ 
    var grid = jQuery("#list10"); 
    var ids = grid.jqGrid('getGridParam','selarrrow'); 
    if (ids.length>0) { 
     var names = []; 
     for (var i=0, il=ids.length; i < il; i++) { 
      var name = grid.jqGrid('getCell', ids[i], 'Name'); 
      names.push(name); 
     } 
     //alert ("Names: " + names.join(", ") + "; ids: " + ids.join(", ")); 
     $("#names").html(names.join(", ")); 
     $("#dialog-confirm").dialog({ 
      height:280, 
      modal:true, 
      buttons:{ 
       'Cancel': function(){ 
        $(this).dialog('close'); 
       }, 
       'Confirm': function(){ 
        //alert("Confirm"); 
        $.ajax({ 
         type: "POST", 
         url: "/cpsb/unprocessedOrders.do", 
         data: { method: "releaseTowics", 
          orderNum: JSON.stringify(ids), 
          names: JSON.stringify(names) 
         }, 
         dataType: "json", 
         success: function(msg){ 
          alert(msg); 
         }, 
         error: function(res, status, exeption) { 
          alert(res); 
         } 
        }); 
       } 
      } 
     }); 
    } 
}); 

事业将确切的解决方案取决于在服务器端您的要求。你可以在这里试试(没有Ajax请求)http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect2.htm。选择一些项目,然后单击“获取所选项”按钮。  

+0

谢谢!这正是我正在寻找的东西... – paul 2010-08-28 13:23:41

+0

@Oleg:我们如何使用jqGrid的默认确认对话框? – 2012-10-22 07:57:49

+1

@ITppl:尝试以下代码:'$ .jgrid.info_dialog(“某些标题可能是 HTML文本”,“其他一些 HTML text”,true);' 。您可以使用其他参数来获取其他选项:请参阅[源代码](https://github.com/tonytomov/jqGrid/blob/v4.4.1/js/grid.common.js#L184-200) – Oleg 2012-10-22 10:17:57