javascript - 如何用 jQuery 中的 dataTables 替换标准引导表?
问题描述
我已经尝试并搜索了很多解决方案,但没有解决我的问题,即使在 dataTables 网站上也是如此。问题是如何使用 DataTables 在 json 中显示嵌套数组?下面的示例,如果我只想显示l3_id: "1"
数据怎么办。
我试图理解这个链接,但并不真正理解。例子
控制台和网络选项卡没有错误。
DataTable 不会出现,包括搜索框、分页等dataTables 功能。(CDN/库已导入)
JSON
{
"data": [
{
"project_id": "1",
"l1_task": [
{
"l1_id": "1",
"l2_task": [
{
"l2_id": "1",
"l3_task": [
{
"l3_id": "1",
"l3_name": "My name"
}
]
}
]
}
]
}
]
}
JS(我在 JS 中应用 HTML)
"<table id='Layer3Table' class='table dt-responsive nowrap' style='width:100%'>"+
"<thead>"+
"<tr>"+
"<th class='text-center'>ID</th>"+
"<th class='text-center'>Activity Name</th>"+
"</tr>"+
"</thead>"+
"</table>"+
$('#Layer3Table').DataTable({
ajax: {
url: url_project_detail",
dataSrc : "data"
},
columns: [
{ data : "l1_task.0.l2_task.0.l3_task.0.l3_id" },
{ data : "l1_task.0.l2_task.0.l3_task.0.l3_name" },
],
});
解决方案
定义您的表格,包括tbody
HTML 中的所有内容,然后使用 DataTables 启用搜索等功能。如果您这样做,则不需要设置 url 或列(尽管您仍然可以设置其他选项)。
$('#Layer3Table').DataTable();
或者,如果您想利用 url 和 column 功能,请在 HTML 中创建基本的表结构
<table id='Layer3Table' class='table dt-responsive nowrap' style='width:100%'>
<thead>
<tr>
<th class='text-center'>Project ID</th>
<th class='text-center'>Project Name</th>
<th class='text-center'>Project Description</th>
<th class='text-center'>Project Status</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
然后在 JavaScript 中单独设置您的 DataTable。
$('#Layer3Table').DataTable( {
ajax: {
url: url_project_detail,
crossDomain : true,
type : "POST",
cache : false,
dataType : "json",
contentType: "application/json",
dataSrc : "data",
},
columns: [
{ data : "l3_id", "className": "text-center" },
{ data : "l3_name", "className": "text-center" },
{ data : "l3_description", "className": "text-center" },
{ data : "l3_status", "className": "text-center" }
],
});
您似乎在做的是遍历您的结果并为每个结果创建一个 DataTable,这就是它不理解的原因。
推荐阅读
- sql-server - 启动事务复制后快照备份大小增加
- python - 如何注释大于 2 个堆栈的熊猫堆积条?
- c++ - 如何根据我在 C++ 中的秒数显示分钟、小时或天数?
- vue.js - Vue + Apollo + Graphql + 订阅 + 缓存?
- asp.net-core - 在 ASP.NET Core 3 Endpoints 中拦截 GET 请求并调用自定义单个操作
- c++ - 缩短多变量比较
- mysql - 从 SELECT WHERE var IN 查询创建临时表时,表中仅插入一行
- clickhouse - 如何使用 clickhouse 选择表格?
- r - 检查 R 中的等价变量?
- automation - Python SSH 自动化为一个命令提供空白结果