我有一个表格列,其中显示客户的全名(名字+姓氏)。但是,我想首先按名字对这个列进行排序,然后对姓进行排序。因此,我在控制器中添加了一些比较器功能:
[
{
key: [
"Abortion Related",
1977
],
value: 4
},
{
key: [
"Abortion Related",
1978
],
value: 6
}
]
单击“标题”列时,我尝试调用
_customNameComparator: function(value1, value2) {
// Separate all words of the full name
var aWordsName1 = value1.split(" ");
var aWordsName2 = value2.split(" ");
// Get the last and first names of the two names
var sFirstName1 = value1.substring(0, value1.lastIndexOf(" "));
var sLastName1 = aWordsName1[aWordsName1.length - 1];
var sFirstName2 = value2.substring(0, value1.lastIndexOf(" "));
var sLastName2 = aWordsName2[aWordsName2.length - 1];
// 0 values are equal
// -1 value1 smaller than value2
// 1 value1 larger than value2
if (sLastName1 === sLastName2) {
if (sFirstName1 === sFirstName2) {
return 0;
} else if (sFirstName1 > sFirstName2) {
return 1;
} else {
return -1;
}
} else if (sLastName1 > sLastName2) {
return 1;
} else {
return -1;
}
}
比较器不能这样工作。排序与往常一样(按全名)。我该怎么办?
顺便说一句:我知道这可能会导致某些错误的排序(例如,对于包含两个或多个单词的姓氏),但是由于它是“唯一的”排序,因此目前对我来说还可以。
答案 0 :(得分:1)
除非绑定的operationMode
为Client
,否则您的比较器可能无法工作。您可以使用{ parameters: { operationMode: 'Client' } }
设置进行绑定的模式。