Jquery Datatable发送许多ajax请求



我正在使用jquery DataTable 1.9并面临一个奇怪的问题。我的代码向服务器发送了许多(相当于表中的列)请求。下面是代码,我使用:

  tableContainer.dataTable({
            sDom: '<"row"<"span6"l><"span6">r>t<"row"<"span6"i><"span6"p>>',
            sPaginationType: 'bootstrap',
            bProcessing: true,
            bServerSide: true,
            bStateSave: false,
            bPaginate: true, 
            oLanguage: {
                sLengthMenu: '_MENU_ records per page'
            },
            bFilter: true,
            bSort: false ,
            // Setup for responsive datatables helper.
            bAutoWidth: false,
            fnPreDrawCallback: function ()
            {
                // Initialize the responsive datatables helper once.
                if (!responsiveHelper)
                {
                    responsiveHelper = new ResponsiveDatatablesHelper(tableContainer, breakpointDefinition);
                }
            },
            fnRowCallback: function (nRow, aData, iDisplayIndex, iDisplayIndexFull)
            {
                responsiveHelper.createExpandIcon(nRow);
            },
            bDestroy: true,
            sAjaxSource: "Getdata",
            bDeferRender: true,
            aoColumns: [
                @foreach (var item in Model.gridAllColumnName)
                {
                    <text> { "sName": "@item" }, </text>
                }
            ]
               ,
            fnServerData: function (sSource, aoData, fnCallback, oSettings) {
                if (oSettings.aaSorting.length)
                {
                    aoData.push({ "name":"popUpId" ,"value": "@Model.popUpId" });
                }

                    oSettings.jqXHR =  $.ajax({
                        "dataType": 'json',
                        "contentType": "application/json; charset=utf-8",
                        "type": "GET",
                        "url": sSource,
                        "data": aoData,
                        "success":
                                    function (msg)
                                    {
                                        var json = jQuery.parseJSON(msg);
                                        fnCallback(json);
                                        $('#' + dataTableId ).removeClass('hidden');
                                    }
                    });
            },
            fnCreatedRow: function( nRow, aData, iDataIndex ) {
                // Bold the grade for all 'A' grade browsers
                $(nRow).attr('onclick', 'getValue("@Model.gridGetValue",this);');
            }
        });

我认为我的问题是在功能FnServerData导致ajax请求等于表中的列。

我在下面的代码中找到了错误区域:

   @for (int i = 0; i < Model.gridColumnsCount; i++)
      {
        if (!Model.gridHideColumns.Contains(i))
        {
            <text>
        tableContainer.fnSetColumnVis(parseInt(@i), false );
            </text>
        }
       }

我上面的代码导致了很多请求

最新更新