javascript - AJAX 调用后 DataTables 不会运行渲染函数
问题描述
我正在使用 AJAX 将数据放入我的 Datatables 表中。这是我以前做过的事情,效果很好,但是这次我遇到了问题。
当我运行InitializeDatatables
JS 函数时,它成功生成表并运行到达GetDataForTable
控制器动作的 AJAX。但是,一旦控制器操作返回,就不会再发生任何事情了。应该发生的是"render"
部分中的函数应该运行但它没有。也没有给出错误。
据我所知,这个设置与我在另一个项目中的设置非常相似,但我找不到哪里出错了。一个区别是,上一个项目是在 ASP.NET Core 3.0 上,而这个是在 2.2 上。
HTML表格设置:
<table id="myTable">
<thead>
<tr>
<th>
Important Stuff
</th>
</tr>
</thead>
//Datatables automatically generates the rest of HTML needed
</table>
在页面加载时运行的 JS 函数:
function InitializeDatatables() {
$('#myTable').DataTable({
"lengthChange": false,
"ajax": {
"url": "/Home/GetDataForTable", //controller action runs and returns
"type": "GET",
error: function (error) {
var test = error; //no error is given
}
},
"columns": [
{ "data": null } //"data: null" to access all JSON data in "render" function(data).
],
"columnDefs": [
{
"targets": 0,
"render": function (data) { //function never runs
var test = data;
return '<span>test</span>';
}
},
{"className": "testClass", "targets": 0} //class name is successfully added
]
});
}
控制器动作:
[HttpGet]
public JsonResult GetDataForTable()
{
MyModel model = new MyModel();
model.ImportantStuff = _myProcessingService.GetDataFromDB();
return Json(new { data = model });
}
解决方案
推荐阅读
- angular - 为生产“在 Azure DevOps”上构建 Angular 项目时出错
- javascript - 无法将数组插入到反应状态
- python - 如何在 Tkinter 中创建一个运行 shell 命令的按钮
- java - Gremlin 中的字母数字排序
- python - 实时更新 tkinter gui
- scala - 如何在给定案例类的完全限定名称的情况下在运行时推断 Spark Scala 的 StructType 模式
- api - 努力将分析师股价导入 GoogleSheets
- elasticsearch - 弹性搜索结合短语和子字符串查询
- jquery - 如何在使用 jQuery 加载添加内容后强制固定位置的 div 滚动到其顶部
- mule - Mulesoft 解析模板 - 动态更改位置