2009-11-03 7 views
5

J'ai une vue partielle avec une liste déroulante (avec Paid and unpaid comme options) et un bouton. Je charge cette vue partielle à l'aide de jquery load, lorsque l'utilisateur clique sur Paid/Unpaid List link dans le sous-menu d'une page. Lorsque je sélectionne Payé dans la liste déroulante et cliquez sur le bouton, il affiche la liste des clients payants dans la boîte de dialogue jquery et si je sélectionne Non payé et cliquez sur le bouton, il affiche les clients impayés dans la boîte de dialogue jquery.problème avec le dialogue jquery

Je vous écris le code suivant pour la boîte de dialogue:

$('#customers').dialog({ 
      bgiframe: true, 
      autoOpen: false, 
      open: function(event, ui) { 
       //populate table 
       var p_option = $('#d_PaidUnPaid option:selected').val(); 
       if (p_option == 'PAID') { 
        $("#customercontent").html(''); 
        //$("#customercontent").load("/Customer/Paid"); 
       } 
       else if (p_option == 'UNPAID') { 
        $("#customercontent").html(''); 
        //$("#customercontent").load("/Customer/Unpaid"); 
       } 
      }, 
      close: function(event, ui) { 
       //do nothing 
      }, 
      height: 500, 
      width: 550, 
      modal: true 
     }); 

Pour la première fois, je reçois correctement la liste dans la boîte de dialogue jquery, mais quand je clique sur le Paid/Unpaid List link et sélectionnez sans solde dans le menu déroulant et cliquez sur le bouton, il affiche le contenu chargé précédent dans la boîte de dialogue jquery.

Qu'est-ce que je fais mal ici?

Répondre

4

Essayez d'ajouter l'option sans mise en cache à jQuery AJAX. J'ai eu des problèmes avec la fonction load() (et IE) où les résultats mis en cache seraient toujours affichés. Pour modifier le paramètre pour toutes les demandes jQuery AJAX font

$.ajaxSetup({cache: false}); 
+0

où dois-je ajouter cette ligne? avant de charger la vue partielle? - – Prasad

+0

même juste avant $ ('# clients'). Dialog ({... devrait suffire) Si vous avez un type de fichier bootstrap javascript, c'est normalement –

+0

que j'ai appelé dans l'événement click du bouton ouverture du dialogue, mais le problème se produit toujours – Prasad

1

Essayez ajouter ceci après ouverture:

$('#customers').empty().remove(); 

Exemple:

open: function(event, ui) { 
       //populate table 
       var p_option = $('#d_PaidUnPaid option:selected').val(); 
       if (p_option == 'PAID') { 
        $("#customercontent").html(''); 
        //$("#customercontent").load("/Customer/Paid"); 
       } 
       else if (p_option == 'UNPAID') { 
        $("#customercontent").html(''); 
        //$("#customercontent").load("/Customer/Unpaid"); 
       } 

       $('#customers').empty().remove(); 

      }, 
3

J'espère que je ne suis pas trop tard pour trouver bonne réponse. J'ai eu le même problème et je l'ai résolu avec les paramètres ajax suivant.

open: function() { 
     jQuery.ajaxSetup({ 
      cache: false 
     }); 
     //populate table or do what you want... 
} 
+0

cela a fonctionné pour moi ... ce n'était pas amusant de traquer. –