2017-02-13 11 views
0

Я использую плагин jQuery DataTables с обработкой на стороне сервера в своем приложении. На данный момент таблица инициализируется и загружается данными, когда документ готов. Код выглядит следующим образом:DataTable получить данные при нажатии кнопки

jQuery(document).ready(function() { 
    var table = DataTables.create("#projectTable", parameters, { 
        ajax: { 
         url: 'project/search.do', 
         data: function(d) { 
           d.numberOfColumns = 6 
           d.submittedOnStart = jQuery("#date1").val(), 
           d.submittedOnEnd = jQuery("#date2").val()       
         }, 
         dataSrc: "rows", 
         type: 'GET' 
        }, 
        columns: getColumns(), 
        "columnDefs": getColumnDefs() 
       }); 
}); 

Это нормально работает. Но я хочу изменить его таким образом, чтобы таблица была инициализирована на готовом документе, но данные загружаются при нажатии кнопки. Я посмотрел на Load DataTable data through button Click, который не работает в моем случае. Есть ли способ сделать это?

+0

Что случилось с 'вар таблицы = JQuery ("#") projectTable DataTable ({/ * INIT опции * /});' 'внутри doc.ready' функции? – mhodges

+0

Спасибо за ответ Mhodges. В этой части нет ничего плохого. Все в порядке. Но как я могу загрузить данные в уже инициализированную таблицу при нажатии кнопки? – rav

+0

Ах, извини, я неправильно понял ваш вопрос. Я думал, вы просто спрашиваете, как инициализировать таблицу в документе. Я верю, что '.reload()' - это то, что вы ищете. https://datatables.net/reference/api/ajax.reload() – mhodges

ответ

-2

Используйте .url и .load, чтобы получить таблицу для обновления нажатием кнопки. .

jQuery(document).ready(function() { 
    var table = DataTables.create("#projectTable", parameters, { 
    ajax: { 
     url: 'project/search.donot', 
     data: function(d) { 
     d.numberOfColumns = 6 
     d.submittedOnStart = jQuery("#date1").val(), 
      d.submittedOnEnd = jQuery("#date2").val() 
     }, 
     dataSrc: "rows", 
     type: 'GET' 
    }, 
    columns: getColumns(), 
    "columnDefs": getColumnDefs() 
    }); 
    $('#thisbutton').click(function() { 
    // you can reload your data here. You can call a different file if you need to change the data returned 
    table.ajax.url("project/search.do").load(); 
    }); 
}); 
+0

«... таким образом ** что таблица инициализируется на готовом документе **, но данные ** загружаются при нажатии кнопки ** « – mhodges

+0

@mhodges - читайте комментарии под своим вопросом, он не набрал свой вопрос правильно, он просит нажать кнопку «Но как я могу загрузить данные в уже инициализированную таблицу при нажатии кнопки?» Его заголовок даже отражает то, что «DataTable получает данные при нажатии кнопки» –

+0

Это будет инициация таблицы при каждом нажатии кнопки. Я ищу, чтобы инициировать таблицу на загрузке страницы и просто сделать ajax-вызов при щелчке и загрузить таблицу с помощью json-ответа из сделанного ajax-вызова. – rav

Смежные вопросы