utf8尼泊尔数字排序jQuery dataTables上的错误

时间:2014-11-11 02:27:51

标签: sorting datatable datatables jquery-datatables

我没有遇到任何错误。

我通常用英语制作浏览器应用程序。最近,我不得不用尼泊尔语进行申请。但我遇到的问题是使用数据表来排序尼泊尔数据。对于它运作良好的角色,而当我不得不用它来排序数字时,它对我来说不起作用。我想可以正确地对Napeli数字进行排序。

例如: - 表格应如下所示 s.n
1(即1)
2(即2)
3(即3)


10(即10)
11(即11)


但相反它显示
S.N.
1(即1)
10(即10)
11(即11)
12(即12)



2(即2)
20(即20)
21(即21)

1 个答案:

答案 0 :(得分:1)

您必须创建自定义排序插件才能执行此操作。这非常简单,因为尼泊尔字符可以立即映射到拉丁语1:1。正如您所指出的那样,1११11,依此类推。因此,在比较数字之前,只需逐个“翻译”尼泊尔字符。

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
    "nepali-sort-pre" : function(a) {
        function nepaliToLatin(nepali) {
            switch (nepali) {
                case "०": return 0; break;
                case "१": return 1; break;
                case "२": return 2; break;
                case "३": return 3; break;
                case "४": return 4; break;
                case "५": return 5; break;
                case "६": return 6; break;
                case "७": return 7; break;
                case "८": return 8; break;
                case "९": return 9; break;        
                default : return 0; break;
            }        
        }
        var latin = '';
        for (var i=0;i<a.length;i++) {
            latin+=nepaliToLatin(a.charAt(i));
        }
        return parseInt(latin);
    },                
    "nepali-sort-asc": function( a, b ) {
        return ((a < b) ? -1 : ((a > b) ? 1 : 0));
    },
    "nepali-sort-desc": function(a,b) {
        return ((a < b) ? 1 : ((a > b) ? -1 : 0));
    }
});

用法示例:

var table = $('#example').DataTable({
    aoColumns: [
      { sType: 'nepali-sort' }
    ]
});

演示 - &gt;的 http://jsfiddle.net/jqwo3ct7/