Jquery Datatable отправляет много ajax-запросов

#jquery #ajax #jquery-datatables

#jquery #ajax #jquery-datatables

Вопрос:

Я использую 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-запросы, равные столбцу в таблице.Пожалуйста, взгляните и помогите мне.

Ответ №1:

Я нашел область ошибок, которая была в следующем коде :

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

            </text>
        }
       }
 

Мой приведенный выше код вызывал множество запросов.