私は 1.10.2 DataTables を使用しています。手動で何かをガンクする代わりに、columnFilter プラグインを利用したいと思います。データテーブル、jQuery 1.10.2、jQuery UI 1.10.3、およびブートストラップ 3.1.1 でブートストラップ レンダラーを使用しています。この特定のテーブルでは、派手なものは使用されていません (固定ヘッダー、固定列、ColVis または ColReorder はありません)。ページングがオンになっています。
<link rel="stylesheet" type="text/css" href="~/CSS/dataTables.bootstrap.css" />
<!-- stuff -->
<table id="reportTable" class="table table-condensed table-striped table-bordered">
<thead>
</thead>
<tbody>
</tbody>
</table>
<!-- stuff -->
<script type='text/javascript' src='~/Scripts/jquery.dataTables.js'></script>
<script type='text/javascript' src='~/Scripts/dataTables.bootstrap.js'></script>
<script type="text/javascript" src="~/Scripts/jquery.dataTables.columnFilter.js"></script>
JavaScript:
vm.table = $('#reportTable').DataTable({
dom: 'rtipfl',
autoWidth: false,
info: true,
lengthChange: true,
lengthMenu: [ 10, 15, 20 ],
displayLength: 10,
pageLength: 10,
ordering: true,
orderMulti: true,
orderClasses: true,
order: [[ 2, "asc" ]],
paging: true,
pagingType: "full_numbers",
renderer: "bootstrap",
deferRender: true,
processing: true,
scrollX: false,
scrollY: false,
scrollCollapse: false,
searching: true,
columns: vm.columns,
columnDefs: vm.columnDefs,
data: vm.postingArray,
initComplete: function (settings, json) {
vm.attachTableEventHandlers();
}
});
ただし、これは 22 列のテーブルです。最初に気付いたのは、columnFilter の例では、次のように DataTable の小文字の初期化のみが言及されていることです。
$('#blabla').dataTable().columnFilter();
私が言うなら
vm.table = $('#reportTable').DataTable({
...
}).columnFilter();
大きく太ります
"TypeError: $(...).DataTable(...).columnFilter is not a function
vm.table = $('#reportTable').DataTable({"
私が言うなら
vm.table = $('#reportTable').DataTable({
...
});
$('#reportTable').columnFilter();
"TypeError: oTable.fnSettings is not a function
if (!oTable.fnSettings().oFeatures.bFilter)"
私が言うなら
vm.table = $('#reportTable').DataTable({
...
});
$('#reportTable').dataTable().columnFilter();
フィルタは表示されません。
私は何を間違っていますか?どのように初期化すればよいですか?