3

我已经为我的表集成了数据表脚本。我有排名列。数据就像

在此处输入图像描述

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

{ "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...

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

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

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       
4

2 回答 2

6

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

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            
    ]
});​ 
于 2012-12-11T04:50:24.673 回答
3

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

例如:

"aoColumns": [
  { "mData": "StringColumn1" },
  { "mData": "StringColumn2" },
  {
    "mData": "Your Numeric Column",
    "mRender": function ( data, type, full ) {
                 return '#' + data + ' in';
               }
  }
于 2012-12-11T04:50:13.333 回答