我有一个带有下拉列表的部分视图(选项为Paid and unpaid
)和一个按钮。
当用户在页面的子菜单中单击Paid/Unpaid List link
时,我使用jquery load加载此部分视图。
当我在下拉列表中选择付费并单击按钮时,它会在jquery对话框中显示付费客户列表,如果我选择未付款并单击按钮,则会在jquery对话框中显示未付费客户。
我正在为对话框编写以下代码:
$('#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
});
我第一次在jquery对话框中正确获取列表,但当我再次单击Paid/Unpaid List link
并在下拉列表中选择Unpaid并单击按钮时,它会在jquery中显示previos加载的内容对话框。
我在这里做错了什么?
答案 0 :(得分:4)
尝试向jQuery AJAX添加no-caching选项。我遇到了load()函数(和IE)的问题,其中将始终显示缓存结果。 要更改所有jQuery AJAX请求的设置,请执行
$.ajaxSetup({cache: false});
答案 1 :(得分:3)
我希望我不能及时提出正确答案。我遇到了同样的问题,我按照ajax设置解决了这个问题。
open: function () {
jQuery.ajaxSetup({
cache: false
});
//populate table or do what you want...
}
答案 2 :(得分:1)
尝试在打开后添加此内容:
$('#customers').empty().remove();
示例:
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();
},