Невозможно загрузить данные в сетку моего табулятора с помощью функции удаленного пейджинга - PullRequest
0 голосов
/ 30 апреля 2020

Я пытался загрузить данные в таблицу табуляторов, используя опцию удаленного пейджинга. Во время отладки отладчик приходит к веб-методу и успешно возвращает данные. но в консоли написано 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 Dev Tool Console

...