繁体   English   中英

DataTable 服务器渲染没有参数

[英]No params on DataTable server rendering

我正在尝试使用 DataTables 服务器渲染通过此脚本在视图中显示数千个数据:

$('#info-comisiones').DataTable({

   "processing": true,
   "serverside": true,
   ajax: {
     type: "POST",
     url: "/Sales/GetSalesByPaymentPeriodID",
     contentType: "application/json; charset=utf-8",
     dataType: "json",
     data: function (dtParms) {
       console.log(dtParms);
       return JSON.stringify(dtParms);
     },
     dataFilter: function (res) {
       var parsed = JSON.parse(res);
       return JSON.stringify(parsed.d);
     },
     error: function (x, y) {
       console.log(x);
     }
   },
   "filter": true,
   columns: [
     {"data":"#"},
     {"data":"F.Registro"},
     {"data":"Hora"},
     {"data":"Confirmación"},
     {"data":"Habitación"},
     {"data":"# Colaborador"},
     {"data":"Nombre Colaborador"},
     {"data":"Puesto"},
     {"data":"Centro Consumo"},
     {"data":"Misceláneo"},
     {"data":"Capturista"},
     {"data":"Puesto C."},
     {"data":"Fecha Salida"},
     {"data":"Descripción"},
     {"data":"Moneda"},
     {"data":"Acciones"},
     {"data":"Cantidad"},
     {"data":"T.Cambio"},
     {"data":"% Descuento"},
     {"data":"Impuestos"},
     {"data":"Precio Unitario MXN"},
     {"data":"Precio Unitario USD"},
     {"data":"Total Neto"},
     {"data":"% Comsión"},
     {"data":"Total Comision MXN"}
   ]
});

但这里的问题是,在我试图查看发送到服务器的数据的行中: console.log(dtParms); 显示一个空的 JSON object,并且服务器端没有收到任何数据。

可能是什么问题呢?

这里有一些注意事项。 我认为第(1)项可能是唯一的问题,但我提到了其他问题,以防万一它们也有用。


  1. 您的dataFilter调用中的 dataFilter function - 为什么需要它?

它会丢弃响应,只保留parsed.d 我不知道parsed.d应该是什么 - 但它可能是空的或无效的。

您需要保留所有响应,因为它包含(或应该包含)DataTables 所需的所有数据。 这不仅是实际的表数据,还有相关的元数据,如服务器端手册的Returned Data部分所述。

我认为您需要完全删除该dataFilter部分。

并确保来自服务器的响应与预期的 JSON 响应结构相匹配。


  1. 什么是"filter": true 这不是有效的 DataTables 选项。 它不会造成任何伤害。 它只会被忽略。

  1. 表的columns设置。 这实际上可能不是问题,但看起来很不寻常。 您有这样的列设置:

    {"data":"Nombre Colaborador"}

Nombre Colaborador值应该是 JSON 响应的data部分中的一个键 - 也许它是。 但更典型的是看到 JSON 键,例如nombreColaborador 就像我说的,也许这没问题。

我提到这一点是因为 JSON 密钥通常是从您的服务器端数据 model 结构生成的,您使用的字段不允许在其名称中使用空格。


问题中可能没有显示更多(或不同)的问题,并且我的回答中没有涵盖。 如果是这样,那么您可能需要将 JSON 的样本添加到问题中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM