Обновление Datatables - PullRequest
       19

Обновление Datatables

2 голосов
/ 08 августа 2011

Я обновляю свою таблицу с помощью 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",, и они работаютхорошо, потому что таблица обрабатывается.

Ответы [ 2 ]

0 голосов
/ 01 марта 2012

DataTables имеет функцию fnReloadAjax в API, которую вы можете вставить в свой скрипт: fnReloadAjax .И вам не нужно включать обработку на стороне сервера, чтобы это работало.

Однако следует предостеречь: если вы планируете включить повторяющееся обновление (т.е. таблица обновляется каждые 10 секунд для отображения «живых» данных), лучший способ сделать это - периодически идентифицировать измененные данные из вашего AJAX.источник (возможно, сравнивая «измененную» метку времени в ваших записях) и используя fnAddData , чтобы добавить / обновить / удалить только эти строки.Это будет дешевле для клиента, чем каждый раз перезагружать весь набор данных.

0 голосов
/ 25 августа 2011

Вы можете обновить данные, вызвав метод fnDraw(). Однако Datatables будет снова считывать данные из фактического источника данных (Ajax URI, в вашем случае) ONLY , если установлено bServerSide: true (с помощью которого вы сообщаете Datatables, что все обработка выполняется на стороне сервера).

Одним из побочных эффектов bServerSide: true является то, что вам необходимо отправить данные о нумерации страниц (iTotalRecords & iTotalDisplayRecords, ..) и другие данные в ответе Ajax (см. Обработка на стороне сервера документы).

Другим побочным эффектом является то, что фильтрация больше не будет работать :( Datatable не может отфильтровать частичные данные, которые у него есть.

...