0

テーブルの値を表示するためにDataTablesを使用しています...選択メニューを使用して列フィルタリングを実行しました...しかし、選択メニューと入力ボックスの両方を使用する必要があります...

4

1 に答える 1

1

それは本質的に違いはありません。コールバックを介して両方を処理します。以下の方法では、サーバー側で作成されたテーブルの入力フィールドに基づいて列をフィルタリングできます。

var oTable = $('#disporeport').dataTable( {
        "aaSorting": [[ 7, "asc" ]],
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": "http://urltosubmit",
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        "bAutoWidth": false,
        "bFilter":true,
        "bLengthChange": true,
        "bPaginate": true,
        "bSort": true,
        "iDisplayLength": 25,
        "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
        "bInfo": true,
        "aoColumns": [
             { "sTitle": "col1", "bVisible":false},
             { "sTitle": "col2", "sWidth": "20%"},
             { "sTitle": "col3", "sWidth": "20%"}
        ],
        "fnServerParams": function ( aoData ) {
            aoData.push({ "name": "selboxparam", "value": $('#selboxid').val() },
                        { "name": "inputboxval", "value": $('#inputboxid').val() },

        }
    });

したがって、fnServerParamsが懸念事項です。渡すボックスごとに名前と値を指定します。これらは$_REQUEST値としてajaxページに送られ、サーバー側スクリプトで使用して、選択したメソッドでフィルタリングできます。テーブルを再描画するには、ボタンのクリックまたはフィールドのマウスアップでfnDrawを実行するだけです。

これは、domベースのテーブルでこれを行うための公式のdatatablesの例です。おそらく少し複雑ではありませんが、テーブルの大きさによっても制限されます(domベースのテーブルで10,000レコードを超えるレコードを個人的に作成することはありません)。

于 2012-07-18T20:44:01.513 に答える