2016-02-10 2 views
1

Я использую плагин таблицы данных jquery для заполнения данных в веб-таблице с помощью ajax. Но я хочу заполнить данные, вызвав метод, который присутствует в js-файле, без вызова ajax. Есть ли какой-либо способ?Как заполнять данные в таблице данных jQuery без вызова ajax?

Обмен моим кодом.

ajax : $.fn.dataTable.pipelineAdv({ 
      url : oMapUrls.loadDefaultMap, 
      pages : !bLivePaginate ? -1 : Global.pageSize, 
      method : "POST", 
      contentType : "application/json", 
      data : function() { 
       var requestData = { 
        serverSide : false 
       }; 
       if (bTimeFiltered) { 
        requestData.withInTime = iFilterByTime; 
       } 
       if (sFilteredVehicleIds) { 
        requestData.vehicleIds = sFilteredVehicleIds; 
       } 
       return requestData; 
      }, 
      redraw : function() { 
       return (getPageName() === "map"); 
      }, 
      callback : function(oJSON, request) { 
       aLiveFleetData = oJSON.serverResponse.result; 
       if (mapRefreshTimer) { 
        window.clearTimeout(mapRefreshTimer); 
       } 
       setMapRefreshTimer(); 
      } 
     }), 
     oCustomization : { 
      sExportFunctionCall : oMapUrls.exportLiveFleetReport, 
      bAdvanceExport : true, 
      bShowDefaultAll : !bLivePaginate 
     }, 
     pageLength : !bLivePaginate ? -1 : Global.rowLength, 
     scrollCollapse : false, 
     scrollY : iDataTableHeight, 
     serverSide : bLivePaginate, 
     order : [ [ 3, "desc" ] ], 
     columns : [ 
       { 
        "data" : "trackeeName", 
        "width" : aColumnWidths[0], 
        "class" : "no-word-break", 
        "settings" : { 
         source : function(request, oCallback) { 
          oCallback($.ui.autocomplete.filter(Global.aJSTreeVehicleItems || [], request.term)); 
         } 
        }, 
        "title" : jQuery.i18n.prop("report.columnTitle.vehicle"), 
        "render" : function(value, type, rowData) { 
         if (type == "display") { 
          rowData.formattedDate = Global.getTimeStampToDate(rowData.dateAndTime, rowData.offset, 
            rowData.timeZone); 

         } 
         return rowData.trackeeName; 

        } 
       }, 
       { 
        "data" : "firstName", 
        "width" : aColumnWidths[1], 
        "class" : "no-word-break", 
        settings : { 
         source : Global.getDriverSuggestion 
        }, 
        "title" : jQuery.i18n.prop("driver.title.txtInfo"), 
        "visible" : Global['show.driver.in.reports'] == 1, 
        "render" : function(value, type, rowData) { 
         return getUserName(rowData.firstName, rowData.lastName); 
        } 
       }, 
       { 
        "data" : "groupName", 
        "width" : aColumnWidths[2], 
        "class" : "no-word-break", 
        "settings" : { 
         source : function(request, oCallback) { 
          oCallback($.ui.autocomplete.filter(Global.aJSTreeGroupItems || [], request.term)); 
         } 
        }, 

Я делаю вызов Ajax, передавая URL и получить данные в формате JSON, но я хочу, чтобы вызвать метод, который имеет данные и передать его в таблице данных, без AJAX вызова.

+0

Вы могли бы поделиться своим кодом? – C2486

+0

Вы прочитали документацию для этого [плагина таблицы данных jquery] (https://www.datatables.net/examples/data_sources/js_array.html) –

+0

Я поделился кодом @LearningMode. – user3932103

ответ

2

Вы можете установить пользовательские данные, установив опцию data. Примеры и данные об использовании приведены здесь http://datatables.net/reference/option/data. Установите параметр данных как функцию, которая возвращает предпочтительный массив данных.

+0

Не удалось подняться, так как у меня нет достаточного количества кредитов. Спасибо @Pranav C Balan. – user3932103

+0

Не могли бы вы также рассказать, как я могу обновить выбранные строки на основе идентификатора этой строки? – user3932103

+0

Вы можете установить опцию 'columnDefs' и выводить вывод на основе данных с помощью вложенного свойства' render', https://datatables.net/examples/advanced_init/column_render.html –