2016-02-02 23 views
0

http://jsfiddle.net/e3nk137y/4537/自舉表:是它可以調用通過從代碼列進行排序行的功能(不點擊標頭)

<table data-toggle="table" 
    > 
    <thead> 
     <tr> 
      <th data-field="fruit" data-sortable="true">Item</th> 
      <th data-field="date" data-sortable="true">Date</th> 
      <th data-field="type" data-sortable="true">Type</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr><td>Pear </td><td data-month="1">January</td> <td>Fruit</td></tr> 
     <tr><td>Carrot</td><td data-month="3">March</td> <td>Vegetable</td></tr> 
     <tr><td>Apple </td><td data-month="2">February</td><td>Fruit</td></tr> 
    </tbody> 
</table> 

在該小提琴是一個表的一個例子。當您單擊標題時,表格按屬於該標題的列進行排序。

我的問題是,如果有可能以某種其他方式觸發該功能 - 從其他功能。更一般地說:我可以顯式調用從各種引導小部件調用的回調函數嗎?

回答

3

您可以通過編程方式單擊標題。這是否達到你想要的?

$("th[data-field='fruit'] .sortable").click(); 

Fiddle

+0

是的,這就是我所需要的。至少在功能上。不知道是否有一種方法可以在沒有編程的情況下點擊標題。無論哪種方式,謝謝你的答案! – UrbKr

+0

這樣做的好處是它很簡單,可以模擬用戶會做什麼。 – Jaydo

+0

是的......我並沒有真正有這樣做的切實反對意見,只是看起來有點'時髦'。 – UrbKr

3

您還可以添加data-sort-name="fruit"到表元素指定一個默認的排序列。

添加data-sort-order="desc"更改排序順序。

jsfiddle

+0

感謝您的提示,但我實際上並不需要回調來獲取默認排序,而是將排序作爲其他操作的結果。 – UrbKr

4

射擊在TH嗒@Jaydo建議是一個很好的選擇(我正要表明,我自己)。您將無法控制要分類的方向(例如,上升或下降)。

看看這個jsFiddle。這更像是一個黑客,而不是一個解決方案。

在TH上設置一些附加數據將有助於控制排序方向。

var table = $('#bsTable'), 
 
    targetTH = table.find('th[data-field="' + field + '"]'), 
 
    targetTHInner = targetTH.children('.sortable'); 
 
    
 
if (table.bootstrapTable('getOptions').sortName === field && targetTH.data('order') === order) { 
 
    console.log('Already sorted'); 
 
    return; 
 
} 
 
// ironically, we need to set the data value to the oposite direction to what we want 
 
if (order === 'asc') { 
 
    targetTH.data('order', 'desc'); 
 
} else { 
 
    targetTH.data('order', 'asc'); 
 
} 
 

 
targetTHInner.click();

相關問題