2010-09-20 8 views
4

J'essaye de recharger la grille avec de nouvelles données qui viennent d'être changées, afin que l'utilisateur puisse voir les nouvelles données avec modification.jqgrid ne recharge pas après avoir fait un appel ajax en utilisant trigger ('reload')

mon approche:

jQuery("#relCasePick").click(function(){ 

    var ids=jQuery("#list10").jqGrid('getGridParam','selarrrow'); 

    $.ajax({ 
     type: "POST", 
     url: "/cpsb/unprocessedOrders.do?method=releaseToCasePick&orderNumbers="+ids, 
     data: JSON.stringify(ids), 
     dataType: "json" 
    }); 

    jQuery("#list10").setGridParam({rowNum:10,datatype:"json"}).trigger('reloadGrid'); 
}); 

quand je suis sur ce bouton .. Je vous envoie les données correctement, mais quand je suis Rechargement son pas mis à jour avec de nouvelles données .... je vais vraiment apprécier si quelqu'un peut help ..

Répondre

4

Ce que je vois ici est un appel Ajax à publier et un autre pour recharger la grille. Le problème ici est quel appel d'ajax finira le premier ?. Tu ne sais pas. Votre meilleur pari serait d'utiliser la fonction de rappel de succès dans le post Ajax. Cela rechargera la grille si et seulement si le post a réussi.

jQuery("#relCasePick").click(function(){ 

    var ids =jQuery("#list10").jqGrid('getGridParam','selarrrow'); 

    $.ajax({ 
    type: "POST", 
    url: "/cpsb/unprocessedOrders.do?method=releaseToCasePick&orderNumbers="+ids, 
    data: JSON.stringify(ids), 
    dataType: "json", 
    success: function(data) { 
     jQuery("#list10").setGridParam({rowNum:10,datatype:"json" }).trigger('reloadGrid'); 
    } 
    }); 
}); 
+0

Merci! @ John Je pensais sur la même ligne, mais n'a pas mis en œuvre jusqu'à ce que vous suggérez ..... son fonctionnement maintenant. – paul

+0

Qu'est-ce que "list10" dans var ids = jQuery ("# ​​list10"). JqGrid ('getGridParam', 'selarrrow'), je suis un débutant, une certaine compréhension de jqgrid. –