Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sapui5 Openui5:sap.ui.model.Sorter的排序顺序错误_Sapui5 - Fatal编程技术网

Sapui5 Openui5:sap.ui.model.Sorter的排序顺序错误

Sapui5 Openui5:sap.ui.model.Sorter的排序顺序错误,sapui5,Sapui5,sap.ui.model.Sorter似乎未正确排序ISO-8859-1字符 下面是一个示例,其中我们创建了一个列表,列表中有一个项目pr字符。其输出顺序不正确,而是“AÅBCDEFGHIJKLMNOØPQRSTUVWXYZ” 预期结果的顺序与声明alfabet变量时的顺序相同:“ABCDEFGHIJKLMOPQRSTUVWXYZÆØ” 我们怎样才能正确地对模型进行排序 JSBIN: var alfabet=“ABCDEFGHIJKLMOPQRSTUVWXYZ” var数据=[]; 对于(变量i

sap.ui.model.Sorter似乎未正确排序ISO-8859-1字符

下面是一个示例,其中我们创建了一个列表,列表中有一个项目pr字符。其输出顺序不正确,而是“AÅBCDEFGHIJKLMNOØPQRSTUVWXYZ”

预期结果的顺序与声明alfabet变量时的顺序相同:“ABCDEFGHIJKLMOPQRSTUVWXYZÆØ”

我们怎样才能正确地对模型进行排序

JSBIN:

var alfabet=“ABCDEFGHIJKLMOPQRSTUVWXYZ”
var数据=[];
对于(变量i=0;i

根据问题注释的输入,直接覆盖排序函数fnCompare以获得正确的顺序

var oSorter = new sap.ui.model.Sorter("value", null, null);

oSorter.fnCompare   = function (a, b) {
        if (a == b) {
            return 0;
        }
        if (b == null) {
            return -1;
        }
        if (a == null) {
            return 1;
        }
        if (typeof a == "string" && typeof b == "string") {
            return a.localeCompare(b, "nb");
        }
        if (a < b) {
            return -1;
        }
        if (a > b) {
            return 1;
        }
        return 0;
    }
var-oSorter=new sap.ui.model.Sorter(“value”,null,null);
oSorter.fnCompare=函数(a,b){
如果(a==b){
返回0;
}
如果(b==null){
返回-1;
}
如果(a==null){
返回1;
}
如果(a的类型==“字符串”&&b的类型==“字符串”){
返回a.localeCompare(b,“nb”);
}
if(ab){
返回1;
}
返回0;
}

这里“nb”是排序使用的区域设置

根据问题注释的输入,直接覆盖排序函数fnCompare以获得正确的顺序

var oSorter = new sap.ui.model.Sorter("value", null, null);

oSorter.fnCompare   = function (a, b) {
        if (a == b) {
            return 0;
        }
        if (b == null) {
            return -1;
        }
        if (a == null) {
            return 1;
        }
        if (typeof a == "string" && typeof b == "string") {
            return a.localeCompare(b, "nb");
        }
        if (a < b) {
            return -1;
        }
        if (a > b) {
            return 1;
        }
        return 0;
    }
var-oSorter=new sap.ui.model.Sorter(“value”,null,null);
oSorter.fnCompare=函数(a,b){
如果(a==b){
返回0;
}
如果(b==null){
返回-1;
}
如果(a==null){
返回1;
}
如果(a的类型==“字符串”&&b的类型==“字符串”){
返回a.localeCompare(b,“nb”);
}
if(ab){
返回1;
}
返回0;
}

这里“nb”是进行排序的区域设置

那么,正确的顺序是什么?初始字符串中的那个?OpenUI5使用JavaScript内置的“localeCompare”字符串函数:(但不提供区域设置)。但是,在执行“Æ”时,给出区域设置似乎没有什么区别。localeCompare(“Z”,“no”)…@akudev是的,正确的顺序应该是初始alfabet字符串中的顺序。让我直接检查一下localeCompare,如果您认为这是一个值得修复的bug,请将其发布在OpenUI5的github页面:@Niklas就可以了。此stackoverflow线程将用于实现workaround@akudev挪威的语言环境是nb。通过使用它,localeCompare返回正确的值“å”。localeCompare('z','nb');1“å”。localeCompare('z','en')-1那么,正确的顺序是什么?初始字符串中的那个?OpenUI5使用JavaScript内置的“localeCompare”字符串函数:(但不提供区域设置)。但是,在执行“Æ”时,给出区域设置似乎没有什么区别。localeCompare(“Z”,“no”)…@akudev是的,正确的顺序应该是初始alfabet字符串中的顺序。让我直接检查一下localeCompare,如果您认为这是一个值得修复的bug,请将其发布在OpenUI5的github页面:@Niklas就可以了。此stackoverflow线程将用于实现workaround@akudev挪威的语言环境是nb。通过使用它,localeCompare返回正确的值“å”。localeCompare('z','nb');1“å”。localeCompare('z','en')-1.