【问题标题】:jquery datatable numeric sort issuesjQuery数据表数字排序问题
【发布时间】:2012-12-11 04:40:09
【问题描述】:

我已经为我的表集成了数据表脚本。我有排名列。数据是这样的

我在这里需要数字排序。为此,我使用了以下代码

{ "sType": "numeric", "aTargets": [ 0 ] }

在html代码中我使用了以下

<span style="display:none;">3</span> #3 in
<span style="display:none;">45</span> #45 in
<span style="display:none;">25</span> #25 in
<span style="display:none;">25</span> #15 in etc...

所以在 span 标签中,我以隐藏格式显示了数字。

但排序不适用于此单元格。请帮我。谢谢

12 月 15 日更新 ======================

{ "bVisible": false, "aTargets": [8] }, //set column visibility            
                {"sType": "numeric", "aTargets": [8] }, //define data type for specified columns
                {"iDataSort": 8, "aTargets": [3] } //sort based on a hidden column when another column is clicked 
                { "bVisible": false, "aTargets": [9] }, //set column visibility            
                {"sType": "numeric", "aTargets": [9] }, //define data type for specified columns
                {"iDataSort": 9, "aTargets": [5] } //sort based on a hidden column when another column is clicked       

【问题讨论】:

    标签: jquery html datatable


    【解决方案1】:

    这是解决问题的另一种方法。 将数值放在隐藏列而不是隐藏跨度中。在您的数据表绑定中,单击可见列标题时指向隐藏列,如下所示:

    myTable.dataTable({        
        "aoColumnDefs": [
            { "bVisible": false, "aTargets": [hiddenColumnIndex] }, //set column visibility            
            {"sType": "numeric", "aTargets": [hiddenColumnIndex] }, //define data type for specified columns
            {"iDataSort": hiddenColumnIndex, "aTargets": [visibleColumnIndex] } //sort based on a hidden column when another column is clicked            
        ]
    });​ 
    

    【讨论】:

    • 我使用了上面的代码。但是整个排序不起作用。我不知道,我错了。这是我的代码 "aoColumnDefs": [ { "bSortable": false, "aTargets": [0] }, { "bVisible": false, "aTargets": [8] }, //设置列可见性 {"sType" : "numeric", "aTargets": [8] }, //定义指定列的数据类型 {"iDataSort": [8], "aTargets": [3] }, //当另一个隐藏列排序列被点击],
    • 抱歉,我发现了错误所在。您的代码运行良好。谢谢
    • 我更新了我的问题。在这里,我们是否将 2 个隐藏列用于 2 个不同的目标。即 Cell8 对单元格 3 是隐藏的。我分别使用单元格 9 对单元格 5 隐藏。为此,我使用了上面的代码(在我的问题中更新,在“Dec15 更新”下)。这里有什么问题吗?
    • 是的,要添加另一个目标/隐藏列,只需添加另一行{"iDataSort": hiddenColumnIndex, "aTargets": [visibleColumnIndex] }
    • 哦。谢谢你。对于默认排序,我使用了 "aaSorting": [[ 8, 'asc' ]] 。但 8 是隐藏列。目标列是 3。排序工作正常。但是单元格3的表头单元格箭头没有突出显示。有什么办法突出显示?
    【解决方案2】:

    看起来您正在使用 datatables.net jquery 插件。如果您的基础数据是数字,则使用 mRender option 覆盖表格单元格中呈现的 html(即,格式化数字以显示 #[actual number] in)。启用排序后,它应该对基础数据进行排序(请参阅 mData 选项)。注意:这是针对当前版本的插件...如果您有旧版本,请参考 fnRender 选项。

    例如:

    "aoColumns": [
      { "mData": "StringColumn1" },
      { "mData": "StringColumn2" },
      {
        "mData": "Your Numeric Column",
        "mRender": function ( data, type, full ) {
                     return '#' + data + ' in';
                   }
      }
    

    【讨论】:

      猜你喜欢
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 1970-01-01
      • 2019-10-21
      相关资源
      最近更新 更多