gpt4 book ai didi

datatables - DataTables 如何确定列类型

转载 作者:行者123 更新时间:2023-12-04 14:11:12 26 4
gpt4 key购买 nike

我有一个由 jQuery DataTables 增强的动态表,它显示一个与此类似的自定义对象 example .

JSON:

{
"data": [
{
"name": "Tiger Nixon",
"position": "System Architect",
"salary": "$320,800",
"start_date": {
"display": "SomeString",
"timestamp": 1303686000
},
"office": "Edinburgh",
"extn": "5421"
},
// ... skipped ...
]}

JavaScript:

$(document).ready(function() {
$('#example').DataTable( {
ajax: "data/orthogonal.txt",
columns: [
{ data: "name" },
{ data: "position" },
{ data: "office" },
{ data: "extn" },
{ data: {
_: "start_date.display",
sort: "start_date.timestamp"
} },
{ data: "salary" }
]
} );
} );

不同之处在于我动态构建列配置,因为列可以按任何顺序排列,其他列可以从列表中添加或删除。对于这个例子(我的情况非常相似),问题是由于某种原因 timestamp属性按字符串排序,而不是按数字排序。

我发现在将列“类型”设置为“数字”后,排序工作得很好。我假设由于某种原因(可能是因为显示元素是一个字符串),DataTables 会自动将该列检测为“字符串”。

当未显式声明时,DataTables 如何设置列的类型?

编辑 1

我做了一个示例代码来显示问题
http://jsfiddle.net/Teles/agrLjd2n/16/

最佳答案

jQuery DataTables 具有内置的类型检测机制。 various types 有多个预定义函数回退到 string数据类型。

也可以使用 third-party plug-ins或者自己写。

指定数据类型的方法有多种,以下只是其中的几种。

SOLUTION 1



使用 type 选项。
$(document).ready(function() {
$('#example').DataTable( {
ajax: "data/orthogonal.txt",
columns: [
{ data: "name" },
{ data: "position" },
{ data: "office" },
{ data: "extn" },
{ data: "start_date.display", type: "date" },
{ data: "salary" }
]
} );
} );

SOLUTION 2



使用返回的 JSON 数据进行类型检测,参见 columns.data 想要查询更多的信息。
$(document).ready(function() {
$('#example').DataTable( {
ajax: "data/orthogonal.txt",
columns: [
{ data: "name" },
{ data: "position" },
{ data: "office" },
{ data: "extn" },
{ data: {
_: "start_date.display",
sort: "start_date.timestamp",
type: "start_date.timestamp",
} },
{ data: "salary" }
]
} );
} );

关于datatables - DataTables 如何确定列类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32277922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com