2009-11-03 39 views
5

Tôi có chế độ xem một phần với menu thả xuống (với số Paid and unpaid làm tùy chọn) và nút. Tôi đang tải chế độ xem một phần này bằng tải jquery, khi người dùng nhấp vào Paid/Unpaid List link trong menu phụ của trang.vấn đề với hộp thoại jquery

Khi tôi chọn Thanh toán thả xuống và nhấp vào nút, nó hiển thị danh sách khách hàng trả phí trong hộp thoại jquery và nếu tôi chọn Nút chưa thanh toán và nhấp chuột, nó hiển thị khách hàng chưa thanh toán trong hộp thoại jquery.

Tôi viết đoạn mã sau cho hộp thoại:

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

Đối với lần đầu tiên, tôi nhận được danh sách một cách chính xác trong hộp thoại jquery, nhưng khi tôi nhấp vào Paid/Unpaid List link lần nữa và chọn chưa được thanh toán trong dropdown và nhấp vào nút, nó hiển thị nội dung được tải sẵn trong hộp thoại jquery.

Tôi đang làm gì sai ở đây?

Trả lời

4

Thử thêm tùy chọn no-caching vào jQuery AJAX. Tôi đã gặp vấn đề với hàm load() (và IE), nơi các kết quả được lưu trong bộ nhớ cache luôn được hiển thị. Để thay đổi các thiết lập cho tất cả các yêu cầu jQuery AJAX làm

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

nơi tôi cần phải thêm dòng này? trước khi tải chế độ xem một phần? - – Prasad

+0

ngay cả trước khi $ ('# khách hàng') hộp thoại ({... nên đủ. Nếu bạn có bất kỳ loại tập tin bootstrap javascript, đó là nơi nó bình thường đi –

+0

tôi đã gọi trong sự kiện click của nút trước mở hộp thoại, nhưng vẫn còn vấn đề xảy ra – Prasad

1

Hãy thử thêm này sau khi mở:

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

Ví dụ:

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

Tôi hy vọng Im không phải là quá muộn để đưa ra Câu trả lời chính xác. Tôi đã có cùng một vấn đề và tôi giải quyết nó với các cài đặt ajax sau đây.

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

điều này làm việc cho tôi ... điều này đã không vui vẻ theo dõi xuống. –

Các vấn đề liên quan