【发布时间】:2017-09-24 22:15:21
【问题描述】:
我有一个 DataTable,我 set a cells value through its object。
我不想直接通过 jQuery 设置单元格值,因为 other problems found here
如何为该单元格的过滤和排序设置不同的值,就像加载 orthogonal data 或使用 HTML5 data-... attributes 时可以实现的一样
这里有一段代码 sn-p 以便更好地理解问题 - 运行后点击按速度排序
$(document).ready(function() {
var dt = $('#example').DataTable({});
//this is not enough as the change doesn't reflect on sorting and filtering
dt.cell( $("#obj2_speed") ).data(9 + 'km/h') ;
//this doesn't work like I would like to
/*dt.cell( $("#obj1_speed") ).data({
"_": 7 + 'km/h',
"sort": 7,
"filter": 'seven'
});*/
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js"></script>
<link href="https://cdn.datatables.net/1.10.15/css/jquery.dataTables.min.css" rel="stylesheet"/>
<table id="example" class="display" width="100%" cellspacing="0">
<thead>
<tr>
<th>Object</th>
<th>Speed</th>
</tr>
</thead>
<tbody>
<tr>
<td>object 1</td>
<td id="obj1_speed" data-sort="80" data-filter="eighty">80km/h</td>
</tr>
<tr>
<td>object 2</td>
<td id="obj2_speed" data-sort="8" data-filter="eight">8km/h</td>
</tr>
<tr>
<td>object 3</td>
<td id="obj3_speed" data-sort="90" data-filter="ninety">90km/h</th>
</tr>
</tbody>
</table>
我的上述用例听起来是这样的:
我最初从数据库加载 DataTable,但随后我必须重复执行 ajax 请求,这些请求需要更新 DataTable 的不同部分,并且这些更新需要反映在其中。
假设我在页面上保持浏览器打开,该页面显示按速度排序的 DataTable。 5 秒后,一个 ajax 请求/响应进来并更新单元格的速度。我希望更新该行并且该行向上或向下移动,因为我正在查看它按速度排序。我已经实现了这一点,但是由于“8km/h”是一个字符串,并且不能用“80km/h”和“90km/h”正确排序这一事实给出了一些小缺点
【问题讨论】:
-
@davidkonrad 是的,感谢您的关注 - 将立即编辑
标签: javascript jquery datatables