2

ajaxを使用してテーブルを更新していますが、プロセスはデータテーブルに関連付けられておらず、テーブルの更新を実行したいと思います

$('#listing').dataTable( {
        "bDestroy": true,
            "bProcessing": true,
    "sAjaxSource": "getlist/",
            "bJQueryUI": true,


            "aoColumns": [
                    { "mDataProp": "id" },      
        { "mDataProp": "aname" },           
        { "mDataProp": "acode" },
        { "mDataProp": "editlink" },
                    { "mDataProp": "deletelink" },

    ],
            "aoColumnDefs": [ 
                    { "bSearchable": false, "bVisible": false, "aTargets": [ 0 ] }

    ]



} );

{"aaData":[{"id":"14",テーブルがレンダリングされているため、データは次のように表示され、正常に機能するようにカスタマイズされています。

4

2 に答える 2

0

メソッドを呼び出すことでデータテーブルを更新できますfnDraw()。ただし、Datatablesは、が設定されている場合にのみ、実際のデータソース(この場合はAjax URI)からデータを再度読み取りますbServerSide: true(これにより、すべての処理がサーバー側で行われることをDatatablesに通知します)。

の副作用の1つbServerSide: trueは、ページネーションの詳細(iTotalRecordsとiTotalDisplayRecords、..)とその他のデータをAjax応答で送信する必要があることです(サーバー側の処理に関するドキュメントを参照)。

その他の副作用は、フィルタリングが機能しなくなることです:(Datatableはそれが持っている部分的なデータをフィルタリングできません。

于 2011-08-25T13:58:49.423 に答える
0

DataTables の API には fnReloadAjax 関数があり、スクリプトに貼り付けることができます: fnReloadAjax。また、これが機能するためにサーバー側の処理を有効にする必要もありません。

ただし、繰り返し更新を組み込む予定がある場合 (つまり、「ライブ」データを表示するためにテーブルが 10 秒ごとに更新される)、最善の方法は、AJAX ソースから変更されたデータを定期的に識別することです (おそらく、レコードの「変更された」タイムスタンプ) とfnAddDataを使用して、それらの行だけを追加/更新/削除します。これは、毎回データセット全体をリロードするよりも、クライアントにとってコストが低くなります。

于 2012-03-01T03:59:04.973 に答える