我正在尝试构建一个具有两个相关列的表。我试图实现的行为是,如果对列1或列2进行排序,无论是按升序还是降序,另一列按降序排序。未排序的列需要按降序排列。该表可以在任一列中包含重复条目。我已经阅读了关于sortForce作为强制第1列基于第2列进行排序的选项,但我还没有找到一种方法来使第1列和第2列在引用其他列的状态时表现相同。怎么能实现这一目标?
我目前有以下配置。
$(function () {
$('table').tablesorter({
ignoreCase: true,
sortList: [ [0,0], [1,0] ],
sortAppend: {
1 : [[ 2, 'd' ]], // always apply descending sort
2 : [[ 1, 'd' ]]
},
sortInitialOrder: "desc",
sortRestart: true
});
});
<table class="tablesorter">
<thead>
<tr>
<th>Column 1/th>
<th>Column 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>A</td>
<td>B</td>
</tr>
<tr>
<td>B</td>
<td>A</td>
</tr>
<tr>
<td>C</td>
<td>A</td>
</tr>
<tr>
<td>B</td>
<td>A</td>
</tr>
</tbody>
</table>
Following the table below, lets say I click to sort column 1 in descending order. Then I would like for the columns to be ordered as:
C : A
C : B
B : A
A : B
If I click on column 1 again to get a ascending order, I would like column 2 to maintain its descending order based off of column 1.
A : B
B : A
C : A
C : B
If I click on column 2 to sort descending, I would like the inverse behavior.
A : B
C : B
B : A
C : A
And in the last case, if I click to have column 2 in ascending order, it would read as.
B : A
C : A
A : B
C : B
你在寻找sortAppend
option。不要使用值数组设置它,而是将其设置为包含列键(索引或选择器)和要追加的排序的对象。
在这种情况下,我相信以下设置将满足您的需求:
$(function () {
$('table').tablesorter({
ignoreCase: true,
sortList: [ [0,0], [1,0] ],
sortAppend: {
1 : [[ 2, 'd' ]], // always apply descending sort
2 : [[ 1, 'd' ]]
},
sortInitialOrder: "desc",
sortRestart: true
});
});
*注意:排序方向可以使用a
(升序),d
(降序),n
(下一个),s
(相同)和o
(相反)来设置: