Я пытался загрузить данные в таблицу табуляторов, используя опцию удаленного пейджинга. Во время отладки отладчик приходит к веб-методу и успешно возвращает данные. но в консоли написано 500 Ошибка.
Обычно совпадение сигнатур метода может привести к 500 ОШИБКАМ. Но, в моем случае, запрос к веб-методу приходит без каких-либо проблем, но данные результата не привязываются к сетке. И говорит Внутренняя ошибка сервера.
сценарий, используемый для вызова моей службы
var fnLoadMyGrid = function() {
//var tabledata = JSON.parse(res.ResultData);
var tblColumns = [];
tblColumns.push({
title: 'Task ID',
field: 'TaskID',
align: "left",
headerFilter: true,
headerFilterPlaceholder: ' ',
formatter: "text"
});
tblColumns.push({
title: 'Name',
field: 'Name',
align: "left",
headerFilter: true,
headerFilterPlaceholder: ' ',
formatter: "text"
});
tblColumns.push({
title: 'From Bed',
field: 'FromBedID',
align: "left",
headerFilter: true,
headerFilterPlaceholder: ' ',
formatter: "text"
});
tblColumns.push({
title: 'Item',
field: 'ItemID',
align: "left",
headerFilter: true,
headerFilterPlaceholder: ' ',
formatter: "text"
});
var ajaxConfig = {
method: "post",
headers: {
"Content-type": 'application/json; charset=utf-8'
}
};
var options = {
height: 'calc(100vh - 193px)',
layout: 'fitDataFill',
autoResize: false,
responsiveLayout: true,
//tooltips: true,
movableColumns: true,
resizableRows: false,
selectable: true,
selectableRangeMode: 'click',
columns: tblColumns,
placeholder: "No Modules are selected. Please select the module button above",
paginationAddRow: 'table',
pagination: "remote",
ajaxURL: "WebService.asmx/TestMethod",
ajaxConfig: ajaxConfig,
ajaxContentType: "json",
//ajaxParams: { sorters: '', filter: '' }, //set any standard parameters to pass with the request
ajaxResponse: function(url, params, response) {
debugger
},
paginationSize: 25,
paginationSizeSelector: [25, 50, 75],
paginationButtonCount: 10
}
table = new Tabulator('#tabulator', options);
//table.setData("WebService.asmx/TestMethod", ajaxConfig);
};
Моя веб-служба
[WebMethod(EnableSession = true)]
//public string TestMethod(int page, int size, string sorters, string filter)
public string TestMethod(int page, int size)
{
string sResult = string.Empty;
TabulatorResponse objResult = new TabulatorResponse();
try
{
InitDLL();
string sSQL = "SELECT TOP 1000 * FROM tTasks";
DataTable oDT = moCData.ExecuteDT(sSQL);
if (Util.IsDTValid(oDT))
{
sResult = JsonConvert.SerializeObject(oDT);
objResult.last_page = 40;
objResult.data = oDT;
}
}
catch (Exception)
{
throw;
}
return JsonConvert.SerializeObject(objResult);
}
public class TabulatorResponse
{
public int last_page { get; set; }
public DataTable data { get; set; }
}
Консоль разработчика Dev