0

次のコードを使用してデータテーブルを作成し、TableTools を使用してさまざまな形式にエクスポートできるようにしています。私は ajax 経由でデータをプルしていますが、最初だけなので、すべてのフィルタリングや並べ替えなどはクライアント側で行われ、bServerSide は false に設定されています。テーブルの行を直接入力すると、フィルター処理されたすべての結果を取得できますが、ajax 呼び出し (「処理中...」メッセージを利用できる) を使用すると、現在のページのデータのみがエクスポートされます。 .

    var oTable = $('#dataTableAccountList').dataTable({
        "sDom": "<'row'<'col-lg-6'l><'col-lg-6'Tf>r>t<'row'<'col-lg-6'i><'col-lg-6'p>>",
        "bServerSide": false,
        "bDeferRender": true,
        "sAjaxSource": '@Url.Action("AccountLoadThroughAjaxCall", "AccountList")',
        "bProcessing": true,
        "oTableTools": {
            "sSwfPath": "/Scripts/TableTools-2.2.0/swf/copy_csv_xls_pdf.swf",
            "aButtons": [
            {
                "sExtends": "copy",
                "oSelectorOpts": { filter: 'applied', order: 'current' }
            },
            {
                "sExtends": "xls",
                "oSelectorOpts": { filter: 'applied', order: 'current' },
                "sFileName": "AccountList_yyyy-MM-dd_hh.mm.ss.xls"
            },
            {
                "sExtends": "pdf",
                "oSelectorOpts": { filter: 'applied', order: 'current' },
                "sFileName": "AccountList_yyyy-MM-dd_hh.mm.ss.pdf",
                "sPdfOrientation": "landscape",
                "sPdfMessage": "Account List" + ($('div.dataTables_filter input').length > 0 ? " Filter: " + $('div.dataTables_filter input').val() : "")
            },
            {
                "sExtends": "print",
                "oSelectorOpts": { filter: 'applied', order: 'current' },
            }
            ]
        }
    });

繰り返しますが、単純なものが欠けていると確信していますが、それが何であるかはわかりません。

前もって感謝します!

4

1 に答える 1

1

bServerSide:false で sAjaxSource を使用できませんでした。私はあなたができるとは思わない。json オブジェクトをリストのリストに変換し、代わりに aaData パラメーターを使用する必要がありました。

ここを参照してください: http://datatables.net/release-datatables/examples/data_sources/ajax.html およびここ: http://datatables.net/examples/data_sources/js_array.html

于 2014-04-06T23:05:21.287 に答える