2010-08-27 12 views
5

Comment puis-je utiliser la confirmation modale Jquery avec jqGrid? Dis quand je soumettrai mes entrées, il fera apparaître une boîte de dialogue modale et afficher les noms avec le message pour envoyer au serveur ..Boîte de dialogue modale jQuery et jqGrid

Mon approche

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

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

Dans cette boîte de dialogue, je dois aussi envoyer ces noms ... mais cette approche ne me donnera pas les noms de ma grille que j'ai choisi pour l'envoyer au serveur.

Répondre

13

Le code suivant pourrait faire ce que vous avez besoin

$("#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 solution exacte de la cause volonté dépend de votre exigence du côté du serveur. Vous pouvez essayer ceci (sans requête ajax) ici http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect2.htm. Sélectionnez certains éléments et cliquez sur "Get Selected" bouton.  

+0

merci! c'est exactement ce que je cherche ... – paul

+0

@Oleg: Comment utiliser la boîte de dialogue de confirmation par défaut de jqGrid? –

+1

@ITppl: Essayez le code suivant: '.jgrid.info_dialog (" un titre qui pourrait être HTML text "," un autre HTML text ", true);' . Vous pouvez utiliser un paramètre supplémentaire pour des options supplémentaires: voir [le code source] (https://github.com/tonytomov/jqGrid/blob/v4.4.1/js/grid.common.js#L184-200) – Oleg

Questions connexes