2009-11-03 15 views
5

Ich habe eine Teilansicht mit einem Dropdown (mit Paid and unpaid als Optionen) und eine Schaltfläche. Ich lade diese Teilansicht mit jquery load, wenn der Benutzer im Untermenü einer Seite auf Paid/Unpaid List link klickt.Problem mit jquery Dialog

Wenn ich im Dropdown-Menü Bezahlt auswähle und auf die Schaltfläche klicke, wird im jquery-Dialogfeld die Liste der bezahlten Kunden angezeigt. Wenn ich Unbezahlt wähle und auf die Schaltfläche klicke, werden unbezahlte Kunden im jquery-Dialogfeld angezeigt.

Ich schreibe den folgenden Code für den Dialog:

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

Zum ersten Mal, ich bin die Liste korrekt im jquery Dialog bekommen, aber wenn ich auf die Paid/Unpaid List link erneut und wählen Sie unbezahlte in der Dropdown und klicken Sie auf die Schaltfläche, es zeigt den zuvor geladenen Inhalt im Jquery-Dialog.

Was mache ich hier falsch?

Antwort

4

Versuchen Sie, jQuery AJAX mit der Option no-caching zu versehen. Ich hatte Probleme mit der load() -Funktion (und IE), wo gecachete Ergebnisse immer angezeigt würden. Um die Einstellung zu ändern, für alle jQuery AJAX Anfragen tun

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

wohin soll ich diese Zeile hinzufügen? vor dem Laden der Teilansicht? - – Prasad

+0

sogar direkt vor $ ('# customers') dialog ({... sollte ausreichen. Wenn Sie irgendeine Art von JavaScript-Bootstrap-Datei haben, würde es normalerweise gehen –

+0

Ich habe das Click-Ereignis der Schaltfläche zuvor aufgerufen Eröffnungsdialog, aber immer noch tritt das Problem auf – Prasad

1

Versuchen Sie, diese zu öffnen, nachdem hinzufügen:

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

Beispiel:

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

Ich Im hoffe nicht zu spät zu kommen mit korrekte Antwort. Ich hatte das gleiche Problem und habe es mit folgenden Ajax-Einstellungen gelöst.

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

dies funktionierte für mich ... das war kein Spaß beim Aufspüren. –