2014-09-24 84 views
2

我現在對我的表分類器有點問題。問題是,我正在整理我的時間,但是當列中包含n/a時,我希望它出現在排序的最後。任何人都可以幫助我實現這個嗎?jquery tablesorter如何忽略排序中的一行

enter image description here

這裏是我的排序代碼...

$("#myStoreStatus").tablesorter({ 
    sortList: [[2,1],[8,0],[0,0]], 
    stripingRowClass: ['even','odd'], 
    stripeRowsOnStartUp: true, 
    widthFixed: false, 
    widgets: ['zebra'], 
    dateFormat: "uk", 
    headers: { 
     0: { sorter: 'digit' } // column number, type 
    } 
}); 
+0

檢查文檔,可能有一些像這樣的''data-order =「10」'這樣的html標籤,所以你的html代碼看起來就像這樣''td data-order =「10」> Ten'。在這種情況下,系統將採用「數據訂單」進行排序,而對於N/A,您可以輸入23:59的值,因此將出現在底部。 – 2014-09-24 07:05:12

+0

@Davor這不會工作,如果排序順序改變。 – 2014-09-24 08:55:05

+0

好吧,http://datatables.net/有這個選項,所以我建議看看。也許tablesorter也有這個選項。 – 2014-09-24 09:16:39

回答

1

至於我能理解,問題是你想要的N/A行總是在最後即使出現,時間列的排序順序被改變。

以下是一種可能的選擇。

$("#myStoreStatus").tablesorter({ 
    sortList: [[2,1],[8,0],[0,0]], 
    stripingRowClass: ['even','odd'], 
    stripeRowsOnStartUp: true, 
    widthFixed: false, 
    widgets: ['zebra'], 
    dateFormat: "uk", 
    headers: { 
     0: { sorter: 'digit' } // column number, type 
    }, 

    textExtraction: function (node) { 
     if (($(node).index()==8) && ($(node).text().toLowerCase()=='n/a')) 
      $(node).parent().addClass('jsnamark'); 
     return $(node).text(); 
    } 

}).bind('sortEnd' function() { 
    $(this).append($(this).find('.jsnamark')); 
}); 

現在,這種和平在做什麼很簡單。它使用textExtraction函數來檢查第8個(時間)單元是否具有'n/a'值。如果確實如此,那麼它會在其行中添加一個jsnamark類。 (如果使用服務器腳本爲頁面提供服務,您也可以用jQuery以多種不同的方式執行相同的操作,或者從服務器端執行相同的操作)。

排序完成後,它會將具有jsnamark類的行重新顯示到表的末尾。

+1

+1不錯的工作。我可以看到可能發生的唯一問題是如果表數據被修改並且'n/a'被一個數字取代。此檢查應確保它以小寫'$(node).text()。toLowerCase()=='n/a'' – Mottie 2014-09-24 16:51:44

+0

@Mottie都非常真實 – 2014-09-24 17:05:27

+0

檢查瞭解更改單元格值。我猜如果你用這個來觸發updateCell,它會重做textExtraction。然而,我會然後添加「else $(節點).parent()。removeClass('jsnamark')」鏈接:http://mottie.github.io/tablesorter/docs/example-update-cell.html – 2014-09-24 17:12:09

1

您可能還想查看我的fork of tablesorter

有一個內置選項,您可以在其中設置字符串值(例如「N/A」)如何在數字列內排序 - 請參閱this demo

如果您使用的是原始tablesorter,則可以使用textExtraction選項將N/A替換爲空字符串;或使用@ Jadran的代碼也可以工作。