2010-08-27 10 views
5

Tôi có thể sử dụng xác nhận phương thức Jquery bằng jqGrid như thế nào? Giả sử khi tôi sẽ đệ trình mục của tôi nó sẽ bật lên một hộp thoại modal và hiển thị tên với thông điệp để gửi đến máy chủ ..Hộp thoại phương thức jQuery và jqGrid

Tiếp cận của tôi

$("#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 của tôi:

<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> 

Trong hộp thoại đó, tôi cũng cần phải gửi những tên đó ... nhưng cách tiếp cận này sẽ không cho tôi những cái tên từ lưới của tôi mà tôi đã chọn để gửi đến máy chủ.

Trả lời

13

Các mã sau đây có thể làm những gì bạn cần

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

Các giải pháp chính xác nguyên nhân sẽ phụ thuộc vào yêu cầu của bạn về phía máy chủ. Bạn có thể thử điều này (không yêu cầu ajax) tại đây http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect2.htm. Chọn một số mục và nhấp vào nút "Chọn được chọn".  

+0

cảm ơn! đây là những gì chính xác tôi đang tìm kiếm ... – paul

+0

@Oleg: Làm thế nào chúng ta có thể sử dụng hộp thoại xác nhận mặc định của jqGrid? –

+1

@ITppl: Hãy thử đoạn mã sau: '$ .jgrid.info_dialog (" một số tiêu đề có thể là HTML văn bản "," một số văn bản HTML khác", true);' . Bạn có thể sử dụng tham số bổ sung cho các tùy chọn bổ sung: xem [mã nguồn] (https://github.com/tonytomov/jqGrid/blob/v4.4.1/js/grid.common.js#L184-200) – Oleg