#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>
}
}
Мой приведенный выше код вызывал множество запросов.