2012-08-14 160 views
0

我試圖讓選擇元素在我的表中工作的一些列的排序。在列的左側,我有一個隱藏在創新中的列。排序與隱藏的列左側不起作用

我使用從DataTables.net的DOM的選擇排序插件:

$.fn.dataTableExt.afnSortData['dom-select'] = function (oSettings, iColumn) 
{ 
     console.log(iColumn); 

    var aData = []; 
    $('td:eq('+iColumn+') select', oSettings.oApi._fnGetTrNodes(oSettings)).each(function() { 
     aData.push($(this).val()); 
    }); 
    return aData; 
}; 

當排序的一列,該列的索引是相同的兩者都具有和不具有隱藏的列向左時(iColumn在上面的afnSortData中)。但是,當左側的列被隱藏時,排序應用於列的右側一步。如果它是不隱藏的排序工作應該如此。

如何確保將排序應用於我點擊左側隱藏列時所點擊的同一列?

回答

1

一個快速和骯髒的方法是將iColumn的值設置爲1。

iColumn = iColumn - 1; 

更新 一個推行清潔方法是這條路線,在DataTables forum提到:

iColumn = oSettings.oApi._fnColumnIndexToVisible(oSettings, iColumn); 
+0

謝謝,我會嘗試,並回到這裏與評論。 – Nicsoft 2012-08-20 16:56:54

+0

但是,當我取消隱藏列時,我遇到了問題。而我取消隱藏的列不是左邊的列,而是在表格的中間,因此它只會將列隱藏在未隱藏列的右側。 – Nicsoft 2012-08-20 17:45:41

+0

@Nicsoft - 答案已更新。 – mg1075 2012-08-20 18:50:29