sAjaxSource不会在IE中执行

时间:2010-10-05 04:21:39

标签: jquery asp.net-mvc datatables

我在我的MVC应用程序中使用jquery datatables serverside。当我给我的控制器方法“FillTable”设置一个断点时,执行只能在IE上第一次到达。如果我返回并重新加载页面并且数据不同,则不会调用该函数。当我尝试使用Firefox时,每次重新加载时都会遇到断点而没有任何问题。这是我的代码。

$(document).ready(function() {
    $('.details').dataTable({
        "bServerSide": true,
        "bProcessing": true,
        "sPaginationType": "full_numbers",
        "sAjaxSource": "../PrepareStatements/FillTable",
        "aoColumns": [
            { "sTitle": "#" },
            { "sTitle": "Date" },
            { "sTitle": "Remarks" },
            { "sTitle": "Dr/Cr" },
            { "sTitle": "Amount"}]
    });
});

我的数据表是

<table width="100%" class="details"  id="eDataTable"></table>

但是,如果我更改显示行数,请单击分页或执行搜索。有人可以帮我这个。

1 个答案:

答案 0 :(得分:2)

好的,我找到了解决方案。您必须添加POST,因为IE倾向于使用GET请求缓存数据结果。我已将以下内容添加到我的函数中,现在它可以正常工作。

$(document).ready(function() {
    $('.details').dataTable({
        "bServerSide": true,
        "bProcessing": true,
        "sPaginationType": "full_numbers",
        "sAjaxSource": "../PrepareStatements/FillTable",
        "fnServerData": function(sSource, aoData, fnCallback) {
            $.ajax({ "dataType": 'json',
                "type": "POST",
                "url": sSource,
                "data": aoData,
                "success": fnCallback
            });
        },
        "aoColumns": [
            { "sTitle": "#" },
            { "sTitle": "Date" },
            { "sTitle": "Remarks" },
            { "sTitle": "Dr/Cr" },
            { "sTitle": "Amount"}]
    });
});