2

列フィルターで複数の項目を選択したい。次の例では、ドロップダウンを使用して列をフィルタリングできます。

http://datatables.net/release-datatables/examples/api/multi_filter_select.html

ただし、列フィルターで複数のアイテムを選択できるようにしたいと思います。ドロップダウンの各アイテムの横にチェックボックスをオンにすることもできます。たとえば、この例では、「CSSグレード」の「A」と「C」にチェックマークを付けて、これらのグレードのみがテーブルに表示されるようにします。

DataTablesプラグインまたはその他の方法で複数選択の列フィルターを取得するにはどうすればよいですか?

4

3 に答える 3

1

選択リスト、チェックボックスなどを使用して独自のフィルターdivを作成し、fnFilterを使用してサーバーからフィルター処理されたデータを要求できます。例えば:

$("#mycheckbox").click(function () {
     var dt = $('#mytable').dataTable({ "bRetrieve": true });
     dt.fnFilter($("#mycheckbox").is(':checked'), 1);
});

投稿:

sSearch_1 : true/false
于 2012-11-27T10:44:58.207 に答える
0

それは本当に簡単で、さまざまな方法で何度も尋ねられますが、驚くべきことに、完全に一致するものを見つけることができませんでした。あなたの列に対応するがあれば:

<select class="form-control" id="ddlSearch">
    <option value="0">Name</option>
    <option value="1">Position</option>
    <option value="2">Office</option>
    <option value="3">Age</option>
    <option value="4">Start date</option>
    <option value="5">Salary</option>
</select>

次に、このjavascriptを実装して、個別の列にseacrhを取得します

var table;
$(document).ready(function() {
    table = $('#example').DataTable({
        pageLength: 100,
        dom: 'lrtip',
    });
    var column_no = 0;
    $('#ddlSearch').on('change',function(){
        column_no = Number($(this).val());
    });

    $( '#txtSearch' ).on( 'input', function () {
        if ( table.columns([column_no]).search() !== $( '#txtSearch' ).val() ) {
            table.columns([column_no]).search( $( '#txtSearch' ).val() ).draw();
        }
    } );
});

たとえば、これを試してくださいhttps://jsfiddle.net/07rnpgs1/

ではごきげんよう

于 2017-12-28T05:30:38.753 に答える
0

このDataTablesプラグインを確認できます。列ごとに複数の基準を選択できるほか、複数の列にまたがるユニオンを選択できます。

これが短時間のデモです:

$(document).ready(function () {
	//Source data definition	
	var tableData = [{
			name: 'Clark Kent',
			city: 'Metropolis',
			race: 'cryptonian'
		}, {
			name: 'Bruce Wayne',
			city: 'Gotham',
			race: 'human'
		}, {
			name: 'Steve Rogers',
			city: 'New York',
			race: 'superhuman'
		}, {
			name: 'Peter Parker',
			city: 'New York',
			race: 'superhuman'
		}, {
			name: 'Thor Odinson',
			city: 'Asgard',
			race: 'god'
		}, {
			name: 'Jonathan Osterman',
			city: 'New York',
			race: 'superhuman'
		}, {
			name: 'Walter Kovacs',
			city: 'New Jersey',
			race: 'human'
		}, {
			name: 'Arthur Curry',
			city: 'Atlantis',
			race: 'superhuman'
		}, {
			name: 'Tony Stark',
			city: 'New York',
			race: 'human'
		}, {
			name: 'Scott Lang',
			city: 'Coral Gables',
			race: 'human'
		}, {
			name: 'Bruce Banner',
			city: 'New York',
			race: 'superhuman'
		}
	];
	//DataTable definition	
	window.dataTable = $('#mytable').DataTable({
			sDom: 'tF',
			data: tableData,
			columns: [{
					data: 'name',
					title: 'Name'
				}, {
					data: 'city',
					title: 'City'
				}, {
					data: 'race',
					title: 'Race'
		
			}]
	});

});
<!doctype html>
<html>
<head>
  <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
  <script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
  <script src="https://cdn.mfilter.tk/js/mfilter.min.js"></script>
  <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css">
  <link rel="stylesheet" type="text/css" href="https://cdn.mfilter.tk/css/mfilter.min.css">
</head>
<body>
  <table id="mytable"></table>
</body>
</html>

于 2019-02-08T14:26:24.193 に答える