2017-09-04 2 views
0

J'essaie de rendre mon plug-in Datatable with Scroller. Les données sont chargées une fois, mais une fois défilées, seules les données de chargement sont affichées. Est-ce que je manque quelque chose? J'essaie de l'implémenter dans Salesforce Lightning. Je l'ai chargé Scroller Bibliothèque v1.4.2 et DataTable v1.10.11Impossible de charger les données côté serveur à l'aide de l'extension Scroller jQuery Datatable

sessionTable = $j('#table-1').DataTable(
{ 
"info": true, 
"searching": true, 

"processing": false, 
"dom": '<"div-pg"pi><"div-search"f><"div-tbl">t<"bottom-info"> ', // f search, p :- pagination , l:- page length 
    paging:true, 
"order" : [[2,"asc"]], 
"serverSide": true, 

//scrollY: "200px", 
scrollX : true, 
"ajax": function (data, callback, settings) { 
       var allRecs = component.get("c.runQuery"); 


       allRecs.setParams(
       { 
       "request" : data , 
       }); 

       allRecs.setCallback(this, function(response) 
       { 
        console.log('in setCallback Populating Data'); 
        /*console.log(response.getReturnValue());*/ 

        var state = response.getState(); 

        if(state === 'SUCCESS' && response.getReturnValue != null) 
        { 
         //callback(JSON.parse(response.getReturnValue())); 
         //callback(sessionTable.rows.add(JSON.parse(response.getReturnValue())).columns.adjust().draw()); 

         var resp = JSON.parse(response.getReturnValue()); 
         console.log(resp); 

         setTimeout(function() { 
         callback({ 
          draw:resp.draw, 
          data: JSON.parse(resp.data), 
          recordsTotal: resp.recordsTotal, 
          recordsFiltered: resp.recordsTotal 
         }); 
           }, 200); 



       }); 
       $A.enqueueAction(allRecs); 
    }, 


scrollY:  "300px", 
scroller: { 
    loadingIndicator: true 
}, 
scrollCollapse: true, 

"language": 
{ 
    "emptyTable": "Loading Data" 
}, 

Répondre

0

La question était avec Salesforce foudre, il ne retournerait pas la réponse. Voici une solution pour cela, nous pouvons forcer Salesforce à répondre en ajoutant le code suivant après la mise en file d'attente: -

$A.enqueueAction(allRecs); 
window.setTimeout(
$A.getCallback(function() { 
    console.log('Calling');          
}), 200);