数据表 jquery.dataTables.min.js:181 未捕获的类型错误:无法读取未定义的属性“长度”
2016-09-19
1099
我无法指定问题所在,这是我的代码:
html:
769105448
服务器端:
353177185
这是我的ajax调用:
887392834
我遇到了此错误:“ jquery.datatables.min.js: 181 Untureck TypeError:无法读取未定义的属性“长度”
注意:我正在使用jquery-1.12.3.js& DataTables 1.10.12。
任何帮助都将不胜感激。
2个回答
最后我找到了问题所在:
首先:数据表需要特定的格式,因此我将服务器端代码更改为如下形式:
var result = new
{
**draw = 1,
recordsTotal = db.Company.ToList().Count,
recordsFiltered = db.Company.ToList().Count,**
data = (from company in db.Company.ToList()
select new
{
Id = company.CompanyId,
RegNo = company.RegestrationNumber,
Name = company.Name,
Industry = company.IndustryType.Name,
Size = company.CompanySize.Name,
LineOfDefence = company.LineOfDefence.Name,
Address = company.Address,
}).ToArray()
};
return Json(result
, JsonRequestBehavior.AllowGet);
其次:我已将这些行添加到脚本中
<script>
$(document).ready(function ()
{
$('#companies').DataTable( {
"ajax": {
url: "/Company/GetCompanyGrid",
type: "GET",
dataType: "json"
},"columns": [
{ "data": "Id" },
{ "data": "RegNo" },
{ "data": "Name" },
{ "data": "Industry" },
{ "data": "Size" },
{ "data": "LineOfDefence" },
{ "data": "Address" },
{ "data": "Logo" },
{ "data": null },
]
});
});
</script>
现在,一切运行正常。
BaDr Amer
2016-09-19
Datatables 要求返回的 json 具有特定格式,如 文档 所述 - 请参阅“返回的数据”部分。
您的 json 应如下所示:
return Json(new
{
param.draw,
recordsTotal = result.Count,
recordsFiltered = result.Count,
data = result
}, JsonRequestBehavior.AllowGet);
错误可能是由于数据表查找不存在的字段所致。请注意,
draw
值是在原始
GetCompanyGrid()
请求中发送的,您无需自行生成。
markpsmith
2016-09-19