2017-02-07 2 views
0

Ich habe ein Problem, wenn Bevölkerung ergibt sich aus meiner Ajax zu Datentabellen, ich bereits überprüft, dass meine Ajax-Funktion arbeitet und zurückgehenDatentabelle abrufen json von DATASRC unbekannten Parameter

Result from the console

Hier ist mein Javascript-Code:

function getBookingRecords() { 
tblDirectLoanReceipt = $('#tbBooking').DataTable(); 
tblDirectLoanReceipt.destroy(); 
tblDirectLoanReceipt = $('#tbBooking').DataTable({ 
    autoWidth: true, 
    initComplete: function() { 
    }, 
    processing: true, 
    serverSide:true, 
    ajax: { 
     type: 'post', 
     contentType: 'application/json; charset=utf-8', 
     url: '/Booking/RetrieveBookingRecords', 
     dataSrc: function (json) { 
      console.log(json); 
      return json; 
     }, 
     columns: [ 
      { data: 'dsm_description' }, 
      { data: 'code' } 
     ] 
    } 
}); 

}

und mein hTML-Code:

@section Scripts 
{ 
    @Helper.LoadCustomJS("ViewsJS/Booking/JS_Booking.js", Url) 
} 

<div class="row"> 
    <div class="col-md-12"> 
     <div class="table-responsive"> 
      <table id="tbBooking"> 
       <thead> 
        <tr> 
         <th>dsm_description</th> 
         <th>code</th> 
        </tr> 
       </thead> 
       <tbody></tbody> 
      </table> 
     </div> 
    </div> 
</div> 

Wie kann ich dieses Problem möglicherweise beheben? Was vermisse ich? Dank für jede Hilfe im Voraus :)

Update:

Fehler Ergebnis

enter image description here

+0

Anstatt eine Funktion in Ihrem 'dataSrc' zu haben, ersetzen Sie sie durch eine leere Zeichenfolge. 'Beachten Sie, dass, wenn Ihre Ajax-Quelle einfach ein Array von anzuzeigenden Daten anstelle eines Objekts zurückgibt, dieser Parameter als leere Zeichenfolge festgelegt wird. Https://datatables.net/reference/option/ajax.dataSrc – annoyingmouse

Antwort

0

Sie versuchen sollten, dass Ihr zurück json Daten von Ajax werden formated wie folgt

{ 
    "data": [ 
    { 
     ... 
     "dsm_description": "Sample description 1", 
     "code": "Sample code 1", 
     ... 
    }, 
    { 
     ... 
     "dsm_description": "Sample description 2", 
     "code": "Sample code 2", 
     ... 
    }] 
} 
zu machen

Um zurückgegebene JSON-Daten zu formatieren, können Sie versuchen, die Bibliothek JSON.NET

zu verwenden
var listData = new List<Dictionary<string,object>>(); 
.... 
var result = new {Data = listData}; 
return Content(JsonConvert.SerializeObject(result), "application/json"); 
+0

Wie? Ich gebe Daten als Liste >() zurück @ trung duong – Angelo11292

+0

Welche Bibliothek verwenden Sie, um List zu Json zu serialisieren, oder Sie geben nur Daten zurück, die ein JsonResult in Ihrem Controller verwenden? –

+0

Ich benutze nur die Json-Funktion in der Steuerung – Angelo11292

0

Könnten Sie versuchen Sie dies:

function getBookingRecords() { 
    tblDirectLoanReceipt = $('#tbBooking').DataTable(); 
    tblDirectLoanReceipt.destroy(); 
    tblDirectLoanReceipt = $('#tbBooking').DataTable({ 
    autoWidth: true, 
    initComplete: function() {}, 
    processing: true, 
    serverSide: true, 
    ajax: { 
     type: 'post', 
     contentType: 'application/json; charset=utf-8', 
     url: '/Booking/RetrieveBookingRecords', 
     dataSrc: "", 
     columns: [{ 
     data: 'dsm_description' 
     }, { 
     data: 'code' 
     }] 
    } 
    }); 

Wie pro meine comment.

Beachten Sie, dass, wenn Ihre Ajax Quelle einfach eine Reihe von Daten zu Anzeige zurückgibt, anstatt ein Objekt, setzen Sie diesen Parameter ein leerer String sein.

Hoffe, dass hilft.

Verwandte Themen