2017-05-11 1 views
0

J'essaie actuellement de remplir mon DataTable à l'intérieur d'une vue en utilisant une requête Serverside, mais j'ai du mal à remplir mes colonnes de table avec le résultat JSON.Traitement côté serveur JQuery et remplissage de colonnes - MVC

<script> 
$(document).ready(function() { 
    $('#datatable-buttons').DataTable({ 
     "processing": true, 
     "serverSide": true, 
     "filter": false, 
     'aoColumnDefs': [{ 
      'bSortable': false, 
      'aTargets': ['nosort'] 
     }], 
     "orderMulti": false, 
     "ajax": { 
      "url": "LoadLogData", 
      "type": "POST", 
      "datatype": "json", 
      "dataSrc": function (json) { 

       console.log(json); 

       if(json.data[0].Date_Time!=null){ 

       var dt = json.data[0].Date_Time; 

     for (var i=0, ien=json.data.length ; i<ien ; i++) { 
      json.data[i].Date_Time = dtConvFromJSON(json.data[i].Date_Time); 
      json.data[i].Timestamp = dtConvFromJSON(json.data[i].Timestamp); 
     } 
        } 
     return json.data; 
    } 
     }, 
     "columns": [ 
      { "data": "MachineID", "name": "MachineID", autoWidth: true }, 
      { "data": "Date_Time", "name": "Date_Time", autoWidth: true }, 
        { "data": "Timestamp", "name": "Timestamp", autoWidth: true } 
     ] 
    }) 
    }); 
</script> 

Mon doute est de savoir comment rendre une spécification de colonne non statique. Je ne veux pas spécifier qu'il y a une colonne nommée "MachineID", "Date_Time" et "Timestamp" Est-ce encore possible?

+0

A ma connaissance, cela peut être simplifié à seulement ' "colonnes": [[ "title": "MachineID"], [ "title": "Date_Time"] 'etc. Vous pouvez certainement stocker le côté du serveur d'informations sur le titre, puis passer en boucle dessus, ou simplement nommer les en-têtes dans' html'. Que voulez-vous dire par "non statique"? – wahwahwah

Répondre

0

j'ai pu résoudre mon problème Partialy avec le code suivant

"columns": [ 

      @{ var cont = 0;} 
       @foreach (string varname in (List<string>)Session["LogTableVariables"]) 
    { 
     @:{"data": "VariableValues", "name": "@varname", autoWidth:true}, 

        cont++; 
       }] 

Mais maintenant, je reçois l'exemple

Column1 | Colonne2

1,2 1,2 ---------

Quand je devrais obtenir

Column1 | Colonne2

1 ------------- 2