Jquery Datatables绘制表格弹出Requested unknown parameter错误如何解决
问题根因
你遇到的报错核心是DataTables默认将传入的数据源识别为二维数组,按列索引从每行数据中取下标对应的值,而你返回的response.Data是对象数组,不存在数字下标属性,因此无法获取列对应值抛出报错。
解决方案
1. 补充columns的data属性映射
在每列的配置中增加data字段,指定和返回对象字段对应的键名即可,同时建议增加重复初始化校验避免多次触发请求时报错,修改后的初始化代码如下:
$.ajax({ url: './Archivos_Ajax.asp', method: "POST", dataType: 'json', data: { accion: "ObtenerSucursales", PageNumber: 1, RowsOfPage: 20 }, success: function (response) { // 先销毁已存在的实例,避免重复初始化报错 if ($.fn.DataTable.isDataTable('#tablaSucursales')) { $('#tablaSucursales').DataTable().destroy(); } $('#tablaSucursales').DataTable( { data: response.Data, columns: [ {title: "Id_Sucursal", data: "Id_Sucursal", defaultContent: "" }, {title: "Nombre_Sucursal", data: "Nombre_Sucursal", defaultContent: ""}, {title: "Estado", data: "Estado", defaultContent: ""}, {title: "Activa", data: "Activa", defaultContent: ""} ] } ); } });
2. 其他排查点
- 确认返回的
Data数组中所有对象都完整包含四个对应字段,无字段缺失或者值为undefined的情况,可在success回调中打印response.Data逐项校验。 - 如果你的页面中
<table>标签里提前写了<thead>和<tbody>的结构,要确认表头的列数和你配置的columns列数完全一致,列数不匹配也会触发同类报错。 - 代码中增加的
defaultContent: ""是兜底配置,即使某行对应字段为空也不会抛出警告,只会显示空字符串。
内容的提问来源于stack exchange,提问作者Hopeauror
相关产品推荐
相关产品推荐

