2009-11-03 24 views
5

Ho una vista parziale con un menu a discesa (con Paid and unpaid come opzioni) e un pulsante. Sto caricando questa vista parziale usando il caricamento jquery, quando l'utente fa clic su Paid/Unpaid List link nel sottomenu di una pagina.problema con la finestra di dialogo jquery

Quando si seleziona Pagato nel menu a discesa e si fa clic sul pulsante, viene visualizzato l'elenco dei clienti a pagamento nella finestra di dialogo jquery e se si seleziona Non retribuito e si fa clic sul pulsante, vengono visualizzati i clienti non pagati nella finestra di dialogo jquery.

Sto scrivendo il seguente codice per la finestra di dialogo:

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

Per la prima volta, sto ottenendo la lista correttamente nella finestra di jQuery, ma quando clicco sul Paid/Unpaid List link nuovo e selezionare non pagata nel menu a discesa e fare clic sul pulsante, mostra i contenuti caricati previos nella finestra di dialogo jquery.

Cosa sto facendo di sbagliato qui?

risposta

4

Provare ad aggiungere l'opzione no-caching a jQuery AJAX. Ho avuto problemi con la funzione load() (e IE) dove i risultati memorizzati nella cache sarebbero sempre stati visualizzati. Per modificare l'impostazione per tutte le richieste jQuery AJAX fanno

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

dove dovrei aggiungere questa linea? prima di caricare la vista parziale? - – Prasad

+0

anche prima della finestra di dialogo $ ('# customers'). {{Dovrebbe essere sufficiente. Se si ha qualsiasi tipo di file bootstrap javascript, è dove normalmente andrebbe –

+0

ho chiamato l'evento click del pulsante prima finestra di dialogo di apertura, ma il problema si verifica – Prasad

1

Prova aggiungere questo dopo aver aperto:

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

Esempio:

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

Spero Im non troppo tardi per venire con risposta corretta. Ho avuto lo stesso problema e l'ho risolto con le seguenti impostazioni di ajax.

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

ha funzionato per me ... non era divertente rintracciare. –

Problemi correlati