gpt4 book ai didi

javascript - 如何根据数据项的属性对数据表中的复杂列进行排序?

转载 作者:行者123 更新时间:2023-11-28 10:56:16 25 4
gpt4 key购买 nike

我有这个数据表,列出了人员。第一列包含一个人的 3 个属性:<td>[title] [lastName] [firstName]</td> .

例如,如果数据是:

[
{
"firstName":"Foo",
"lastName":"Bar",
"title":"Z"
},
{
"firstName":"John",
"lastName":"Doe",
"title":"A"
}
];

然后,当升序排序时,行将默认为:

A Doe John
Z Bar Foo

(“A”在“Z”之前)

但是我希望它基于lastName,而不是基于整个单元格内容的默认字符串排序。 。在这种情况下,我期望的升序排序是:

Z Bar Foo
A Doe John

(“Doe”之前的“Bar”)

我尝试这样做:

var persons = [
{
"firstName":"Foo",
"lastName":"Bar",
"title":"Z"
},
{
"firstName":"John",
"lastName":"Doe",
"title":"A"
}
];

$.fn.dataTableExt.afnSortData["first-column"] = function (oSettings, iColumn) {
return jQuery.map(oSettings.oApi._fnGetTrNodes(oSettings), function (tr, i) {
return persons[i].lastName;
});
};

$("table").dataTable({
"aaData":persons,
"aoColumns":[
{
"sTitle":"First column",
"mData":function (source, type, val) {
return source.title + " " + source.lastName + " " + source.firstName;
},
"sSortDataType":"first-column"
}
]
});

对应的jsFiddle:http://jsfiddle.net/8Gsb3/1/

但是这种自定义排序不起作用 - 它仍然按单元格的第一个字母排序,即 title

最佳答案

看你的代码,好像你使用的是datatable,为什么不使用datatable提供的排序功能。

$("table").dataTable({
"aaData":persons,
"aaSorting": [[1, 'desc']]
]
});

Datatable 是从 0 开始的,因此这会在加载时对表进行排序,以使表的第二列默认为降序。

来源:http://datatables.net/release-datatables/examples/basic_init/table_sorting.html

关于javascript - 如何根据数据项的属性对数据表中的复杂列进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22057478/

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