[英]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)项可能是唯一的问题,但我提到了其他问题,以防万一它们也有用。
dataFilter
调用中的 dataFilter function - 为什么需要它? 它会丢弃响应,只保留parsed.d
。 我不知道parsed.d
应该是什么 - 但它可能是空的或无效的。
您需要保留所有响应,因为它包含(或应该包含)DataTables 所需的所有数据。 这不仅是实际的表数据,还有相关的元数据,如服务器端手册的Returned Data部分所述。
我认为您需要完全删除该dataFilter
部分。
并确保来自服务器的响应与预期的 JSON 响应结构相匹配。
"filter": true
? 这不是有效的 DataTables 选项。 它不会造成任何伤害。 它只会被忽略。 表的columns
设置。 这实际上可能不是问题,但看起来很不寻常。 您有这样的列设置:
{"data":"Nombre Colaborador"}
Nombre Colaborador
值应该是 JSON 响应的data
部分中的一个键 - 也许它是。 但更典型的是看到 JSON 键,例如nombreColaborador
。 就像我说的,也许这没问题。
我提到这一点是因为 JSON 密钥通常是从您的服务器端数据 model 结构生成的,您使用的字段不允许在其名称中使用空格。
问题中可能没有显示更多(或不同)的问题,并且我的回答中没有涵盖。 如果是这样,那么您可能需要将 JSON 的样本添加到问题中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.