2014-01-05 48 views
1

我有一個需求,我需要能夠根據用戶的選擇按表中的特定列進行分組。我需要鏡像動態分組功能,如jqgrid文檔中所示。我正在使用表分類器分組機制。最初我嘗試了jqGrid,它運行良好,但我們無法根據我們的要求自定義css。我正在使用tablesorter和分組部件。 現在使用這個組合,我可以看到,只需單擊列標題即可對錶中的所有列進行分組,只需單擊列標題即可。所以,基本上我需要加載一個特定的列分組,然後當用戶點擊其他列時,只有排序應該發生。此外,對小組進行分組時僅考慮第一個字母而不是整個單詞。我檢出了分組代碼,並且正在使用應該修改的分割函數。任何人都可以請我指出正確的方向來實現我的目標tablesorter分組部件定製

回答

0

分組控件允許您將其設置爲按字母,單詞,分隔符,日期分組,並禁用分組 - 請參閱「標題類名稱」部分可以使用full list class names

在你的情況下,使用您的話要組列group-word類名,group-false禁用分組(demo

HTML

<table class="tablesorter"> 
    <thead> 
     <tr> 
      <th class="group-word">AlphaNumeric</th> 
      <th class="group-false">Numeric</th> 
      <th class="group-false">Animals</th> 
      <th class="group-false">Sites</th> 
     </tr> 
    </thead> 
    <tbody> 
     ... 
    </tbody> 
</table> 

腳本

$('table').tablesorter({ 
    theme: 'blue', 
    sortList: [ [0, 0] ], 
    widgets: ['zebra', 'group'] 
}); 

CSS(可摺疊箭頭)

/* collapsed arrow */ 
tr.group-header td i { 
    display: inline-block; 
    width: 0; 
    height: 0; 
    border-top: 4px solid transparent; 
    border-bottom: 4px solid #888; 
    border-right: 4px solid #888; 
    border-left: 4px solid transparent; 
    margin-right: 7px; 
    user-select: none; 
    -moz-user-select: none; 
} 
tr.group-header.collapsed td i { 
    border-top: 5px solid transparent; 
    border-bottom: 5px solid transparent; 
    border-left: 5px solid #888; 
    border-right: 0; 
    margin-right: 10px; 
} 
+0

首先感謝您的及時回覆。最初我通過參數sortList:[[1,1]]進行分組,基於完美工作的第二列。然後,我按照建議添加了組標題,並且工作良好。我面臨的唯一問題是,當我點擊其他列標題時,初始分組被刪除。我知道如果按SHIFT鍵然後點擊列標題,它會在分組內排序。我可以編寫/修改任何jQuery,這樣就可以在不需要按SHIFT鍵的情況下實現這種行爲。 – user2499659

+0

我不確定這是否是您想要的,但嘗試['sortForce'選項](http://mottie.github.io/tablesorter/docs/#sortforce)總是首先對所需列進行排序([demo ](http://jsfiddle.net/abkNM/1831/)) – Mottie

+0

是的,這就是我真正想要的... sortforce選項做到了。非常感謝... !!!!我現在唯一要做的就是改變擴展和合約按鈕。 – user2499659