2012-10-29 69 views
2

我在一些HTML表格中使用了jQuery DataTables。那麼,我有一個頁面,其中列出了幾個表格,我必須通過相同的過濾器對它們進行過濾。在這種情況下,我定製了一個日期範圍。jQuery DataTables篩選多個表格

所有表都使用相同的CSS類構造DataTable,並通過日期範圍,我沒有在

$.fn.dataTableExt.afnFiltering.push(fn). 

我也有通過文字其他搜索,使用

$('.dataTable').dataTable().fnFilter(
    searchVal, 
    4, 
    false, 
    true 
); 

搜索而且這個人也只在一張桌子上工作,而不是像我期待的那樣。

感謝,

+1

可能重複[如何將多個jQuery數據表放在一個頁面?](http://stackoverflow.com/questions/1790065/how-to-put-multiple-jquery-datatables-in-one-page) –

+0

這不是重複的,OP是要求在每個DataTables實例中使用自定義過濾器,並使用隔離範圍 –

回答

1

你有沒有注意到這個 範圍過濾(日期)

顯示詳細信息在特定日期範圍過濾列。 請注意,您可能需要更改輸入上的ID爲以及存在開始日期和結束日期的列。

$.fn.dataTableExt.afnFiltering.push(
function(oSettings, aData, iDataIndex) { 
    var iFini = document.getElementById('fini').value; 
    var iFfin = document.getElementById('ffin').value; 
    var iStartDateCol = 6; 
    var iEndDateCol = 7; 

    iFini=iFini.substring(6,10) + iFini.substring(3,5)+ iFini.substring(0,2) 
    iFfin=iFfin.substring(6,10) + iFfin.substring(3,5)+ iFfin.substring(0,2)  

    var datofini=aData[iStartDateCol].substring(6,10) + aData[iStartDateCol].substring(3,5)+ aData[iStartDateCol].substring(0,2); 
    var datoffin=aData[iEndDateCol].substring(6,10) + aData[iEndDateCol].substring(3,5)+ aData[iEndDateCol].substring(0,2); 

    if (iFini == "" && iFfin == "") 
    { 
     return true; 
    } 
    else if (iFini <= datofini && iFfin == "") 
    { 
     return true; 
    } 
    else if (iFfin >= datoffin && iFini == "") 
    { 
     return true; 
    } 
    else if (iFini <= datofini && iFfin >= datoffin) 
    { 
     return true; 
    } 
    return false; 
}); 

範圍濾波(數字) 過濾器上的值給定的兩個數字之間存在一個特定的數值列。 請注意,您可能需要更改編號爲輸入,其中數值爲

+0

嗨,謝謝你。那麼,這幾乎是我所做的,它仍然只能在一張桌子上工作,而不是在一個範圍內。 Upvote,因爲它的工作原理,但仍然不能解決我的問題。正如我在評論中看到的那樣,似乎我可以在.each()中做到這一點,並且可以工作。我現在正在測試這個。再次感謝! – PedroHCan

+0

感謝upvote :) – ucefkh