2010-08-27 28 views
5

¿Cómo puedo usar la confirmación modal de Jquery con jqGrid? Decir, cuando voy a enviar mis entradas se mostrará un cuadro de diálogo modal y mostrar los nombres con el mensaje para enviar al servidor ..jQuery diálogo modal y jqGrid

Mi enfoque

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

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

En ese cuadro de diálogo necesito enviar esos nombres también ... pero este enfoque no me dará los nombres de mi cuadrícula que seleccioné para enviarlo al servidor.

Respuesta

13

El siguiente código podría hacer lo que tiene

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

La solución exacta de la causa voluntad depende de sus necesidades en el lado del servidor. Puede intentar esto (sin solicitud de ajax) aquí http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect2.htm. Seleccione algunos elementos y haga clic en el botón "Obtener seleccionados".  

+0

gracias! esto es exactamente lo que estoy buscando ... – paul

+0

@Oleg: ¿Cómo podemos usar el cuadro de diálogo de confirmación predeterminado de jqGrid? –

+1

@ITppl: Pruebe el siguiente código: '$ .jgrid.info_dialog (" algún título que podría ser HTML texto "," algún otro HTML texto ", verdadero);' . Puede usar un parámetro adicional para opciones adicionales: vea [el código fuente] (https://github.com/tonytomov/jqGrid/blob/v4.4.1/js/grid.common.js#L184-200) – Oleg

Cuestiones relacionadas