2014-11-13 64 views
-1

我有一個問題,其中我的tablesorter列包含看起來像這樣的數據,[20823,C420837,9823927,47-123,C47293]以及空格是NoneType 問題是當我嘗試對它們進行排序(asc或desc)時,我的tablesort將所有數字類型組合在一起,然後我的其餘數據按字母順序排列,並按另一列中的字段排序。我希望將所有數據與所有的NoneTypes一起排序,無論是在頂部還是在下面,而不是間隔。在搞清楚如何自定義排序此數據將非常感激Tablesort排序整列和字符串

編輯任何的幫助:我添加了一個自定義分析器

$.tablesorter.addParser({ 
    // set a unique id 
    id: 'enumsos', 
    is: function(s) { 
     // return false so this parser is not auto detected 
     return false; 
    }, 
    format: function(s) { 
     // format your data for normalization 
     return s.toString(); 
    }, 
    // set type, either numeric or text 
    type: 'text' 
}); 

$(function() { 
    $("table").tablesorter({ 
     headers: { 
      7: { 
       sorter:'enumsos' 
      } 
     } 
    }); 
}); 

現在我遇到一個新的問題,分揀工作,但它只是排序我的東西下降,這是所有列!這是怎麼回事?

+0

這太糟糕了。祝你好運。你有問題嗎? –

+0

是的,我的問題是如何正確地對列進行排序? –

回答

0

我不能完全肯定47-123值是如何進行排序,但如果你修改解析器從內容(除了小數點)刪除所有非數字的值,那麼只有數值將整理(demo

$.tablesorter.addParser({ 
    // set a unique id 
    id: 'enumsos', 
    is: function (s) { 
     // return false so this parser is not auto detected 
     return false; 
    }, 
    format: function (s) { 
     // format your data for normalization 
     return s.toString().replace(/[^\d.]/g, ''); 
    }, 
    // set type, either numeric or text 
    type: 'numeric' 
}); 

$(function() { 
    $('table').tablesorter({ 
     headers: { 
      0: { 
       sorter: 'enumsos' 
      } 
     } 
    }); 
}); 

作爲空單元中,可以設置在那裏它們的排序使用emptyTo option,或者如果該列包含非數字字符串,如「N/A」,則可以使用stringTo option,但首先上面的解析器需要修改爲不能替換所有的非數字。