jquery对话框的问题

时间:2009-11-03 04:13:51

标签: jquery asp.net-mvc dialog load

我有一个带有下拉列表的部分视图(选项为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加载的内容对话框。

我在这里做错了什么?

3 个答案:

答案 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();

          },