jQuery数据表解析浮点函数全球化

jQuery数据表解析浮点函数全球化,jquery,datatables,columnsorting,Jquery,Datatables,Columnsorting,我使用jquerydatatable以十进制值显示百分比,如28.33 91.58 0.65 我使用这些值的parseFloat对它们进行排序。问题出现在国际化过程中,在法语、德语中,这些值表示为 28,33 91,58 0.65 parseFloat函数忽略,只显示数字部分。所以28,33显示为28和 91,58显示为91和 等等。。 我需要保留逗号并对表进行排序。如果我删除parsefloat,它不是排序。如果我替换,则替换为。它可以工作,但我需要一个逗号。如果有人建议我解决这个问题,我会很

我使用jquerydatatable以十进制值显示百分比,如
  • 28.33
  • 91.58
  • 0.65
  • 我使用这些值的parseFloat对它们进行排序。问题出现在国际化过程中,在法语、德语中,这些值表示为
  • 28,33
  • 91,58
  • 0.65
  • parseFloat函数忽略,只显示数字部分。所以28,33显示为28和 91,58显示为91和 等等。。 我需要保留逗号并对表进行排序。如果我删除parsefloat,它不是排序。如果我替换,则替换为。它可以工作,但我需要一个逗号。如果有人建议我解决这个问题,我会很有帮助的

    代码片段

        $.ajax({
                    dataType : "json",
                    url : myURL,
                    data : aoData,
                    cache : false,
                    success : function(json) {
                         var settings = {
                             tableSelector: getTableSelector(tab),
                             tableContainer : tab,
                             aaData : json.aaData,
                             iDisplayLength: 10,
                             bProcessing: false,
                             oLanguage : {
                                sEmptyTable: json.emptyTableMessage,
                                oPaginate: DataTablesUtils.getPaginationControls()
                            },
                             fnPreDrawCallback: function() {
                                resetArrowButtons(tab);
                             },
                             fnDrawCallback: function(oSettings) {
                                 attachTableBodyEventListeners(tab);
                                 DataTablesUtils.togglePaginationControls(oSettings, json.aaData.length);
                             },
                             fnInitComplete: function (oSettings) {
                                 hideLoader(tab);
                                 showTable(tableSelector);
                                 showFilterBtn(tab);
                             },
                             aoColumns: columnRender(tab),
                             bSort : true,
                             aaSorting: []
                         };
    
                         var pagination = new DatatablesPagination(settings);
                         pagination.display();
                    },
                    error : function() {
                        showErrorMessageDetail(tab);
                    }
                });
    
    
    
    
    function columnRender(tab) {
            return [{
                // Column1
                "sWidth" : "50px",
                "bSortable" : true,
                "fnRender": function(oObj) {
                    return getColumnIcon(oObj.aData[0]);
                }
            }, {
                // Percentage %
                "sWidth" : "90px",
                "bSortable" : true,
                "sType": "numeric",
                "fnRender" : function(oObj) {
                    return showValueOrDash(oObj.aData[1]);
                }
            }];
        }
    
    
            function showValueOrDash(value) {
            return value ? parseFloat(value) : " - ";
        }
    

    您是否必须使用传统的渲染功能?DataTables 1.10及更高版本提供了一些可用于轻松解决此问题的工具。查看用于此的文件,我不确定它是否支持任何不同的签名

    在更高版本中,可以定义渲染函数以使用国际版本文本进行显示,但使用可排序parseFloat版本进行排序

    像这样的

    //columns object
    [{
       "sWidth" : "90px",
       "bSortable" : true,
       "sType": "numeric",
       "render": function (data, type, row) {return renderData(data, type, row); }
    }]
    //render function for the above column
    function renderData(data, type, row){
       if(type = "display"){
          //return the unmodified data, or - if it is falsey
          return data ? data : "-";
       }
       else{
          //replace commas with periods, then parseFloat to sort the data
          return parseFloat(data.replace(",", "."));
       }
    }
    

    让我们看看你想要什么tried@muecas我真的不知道该怎么办。jQuery需要一个数字来排序,但我只能给出一个中间带逗号的数字(实际上不是一个数字)。为什么不给一个带点的数字呢?@mueca因为我们有一个大数据表,所有数据都是英文的。该网站的德国用户希望看到德国格式的数字(90,82而不是90.82)。你能发布你的DataTables js初始化吗?