'17/03/2012 'の形式の日付列が1つあります。datatables date filter
私は、開始日と終了日を選択できるようにしたいと思います。上記の1つの日付の列がこの日付の範囲内にある場合は、その列をフィルタリングします。以下は
は、使用してコードイムです:
Start Date: <input type="text" id="dateStart" name="dateStart" size="30">
End Date: <input type="text" id="dateend" name="dateend" size="30">
<script type="text/javascript" charset="utf-8">
$.fn.dataTableExt.afnFiltering.push(
function(oSettings, aData, iDataIndex) {
var iFini = document.getElementById('dateStart').value;
var iFfin = document.getElementById('dateend').value;
var iStartDateCol = 2;
var iEndDateCol = 2;
iFini=iFini.substring(0,2) + iFini.substring(3,5)+ iFini.substring(6,10)
iFfin=iFfin.substring(0,2) + iFfin.substring(3,5)+ iFfin.substring(6,10)
var datofini=aData[iStartDateCol].substring(0,2) + aData[iStartDateCol].substring(3,5)+ aData[iStartDateCol].substring(6,10);
var datoffin=aData[iEndDateCol].substring(0,2) + aData[iEndDateCol].substring(3,5)+ aData[iEndDateCol].substring(6,10);
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;
}
);
$(function() {
// Implements the dataTables plugin on the HTML table
var $oTable= $("#example").dataTable({
"sDom": '<"top"><"clear">t<"bottom"i><"clear">',
"iDisplayLength": 20,
"oLanguage": {
"sLengthMenu": 'Show <select><option value="25">25</option><option value="50">50</option><option value="100">100</option><option value="200">200</option></select>'
},
"bJQueryUI": true,
//"sPaginationType": "full_numbers",
"aoColumns": [
null,
null,
{ "sType": "date" }
]
});
$('#dateStart, #dateend').daterangepicker(
{
dateFormat: 'dd/mm/yy',
arrows: true
}
);
/* Add event listeners to the two range filtering inputs */
$('#dateStart').keyup(function() { oTable.fnDraw(); });
$('#dateend').keyup(function() { oTable.fnDraw(); });
/* Add event listeners to the two range filtering inputs */
$('#dateStart').change(function() { oTable.fnDraw(); });
$('#dateend').change(function() { oTable.fnDraw(); });
/* Add event listeners to the two range filtering inputs */
$('#name').keyup(function() { oTable.fnDraw(); });
$('#name').change(function() { oTable.fnDraw(); });
});
</script>
この上の任意のヘルプのアドバイスは非常に便利BVEでしょう。前もって感謝します。私はfilter API pageに示しています例は、トリックを行うだろうと思い
(私はキーワードでテーブルをフィルタリングするためにも、これを使用)すべてのプラグインを使用せずに解決策を見つけました。私は完全なコードで私の質問を更新しました。 – Codded
@Coddedだから、問題は日付形式/解析です。拡張機能は、 'iFini = iFini.substring(6,10)+ iFini.substring(3,5)+ iFini.substring(0,2)'のような2行の日付文字列を手動で解析しています。彼がそこに持っているものから、彼はMM/DD/YYYY形式の何かを期待しているように見えます。私はあなたが説明しているもののような複数のフォーマットを扱うことができる実際のパーサかもしれません。私は、ネイティブのjavascriptの日付オブジェクトには構文解析メソッドが組み込まれていると思うし、もしあなたがjQueryUIをまったく使っていれば - そのdatepickerもそうだ。 – mbeasley
日付とifiniなどについてもう一度私の答えを変更しました。フィルターは機能していますが、クリックすると表が再描画されるだけです。それは私が日付を選択したときに引き分けを開始しない。私はdaterangepickerプラグインを使用しています。 – Codded