2009-11-03 17 views
5

Mam częściowy widok z rozwijanym menu (z opcją Paid and unpaid) i przyciskiem. Załaduję ten widok częściowy przy użyciu obciążenia jQuery, gdy użytkownik kliknie Paid/Unpaid List link w podmenu strony.Problem z oknem dialogowym jquery

Po wybraniu opcji Płatne w menu i kliknięciu przycisku wyświetlana jest lista płatnych klientów w oknie dialogowym jquery, a jeśli wybiorę opcję Niezapłacone i przycisk "kliknij przycisk", w oknie dialogowym jquery pojawi się niezapłacony klient.

piszę następujący kod do okna:

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

Po raz pierwszy Dostaję listy poprawnie w oknie dialogowym jquery, ale gdy klikam Paid/Unpaid List link ponownie i wybierz Niezapłacone w rozwijanym i kliknij przycisk, pokazuje poprzednio załadowaną zawartość w oknie dialogowym jquery.

Co ja tu robię źle?

Odpowiedz

4

Spróbuj dodać opcję braku buforowania do jQuery AJAX. Miałem problemy z funkcją load() (i IE), w której zawsze wyświetlane były wyniki z pamięci podręcznej. Aby zmienić ustawienia dla wszystkich żądań jQuery AJAX zrobić

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

Gdzie powinienem dodać tę linię? przed załadowaniem widoku częściowego? - – Prasad

+0

nawet tuż przed $ ('# customers'). (... powinno wystarczyć .Jeśli posiadasz dowolny typ pliku bootstrap javascript, to miejsce, w którym normalnie by się pojawiło –

+0

Zadzwoniłem w zdarzeniu kliknięcia przycisku przed otwarcie okna dialogowego, ale nadal pojawia się problem – Prasad

1

Spróbuj dodać to po otwarty:

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

Przykład:

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

Mam nadzieję, że Im nie jest zbyt późno, aby wymyślić poprawna odpowiedź. Miałem ten sam problem i rozwiązałem go z następującymi ustawieniami ajax.

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

to działało dla mnie ... to nie było zabawne śledzenie. –

Powiązane problemy