Я пытаюсь отобразить datatable в своем веб-приложении, используя модель Asp MVC, и получаю сообщение об ошибке «Не могу прочитать свойство length of undefined»

Мой HTML:

<table class="table table-striped table-bordered table-hover" id="dataTablesTable">
<thead>
<tr>
 <th>Client</th>
<th>Secteur</th>
<th>Activite</th>
<th>Date</th>
<th>Duree</th>
</tr>
</thead>
<tbody>
</tbody>
</table>

JS:

    $('#dataTablesTable').DataTable({
        bProcessing: true,
        sAjaxSource: '@Url.Action("GetCurrentUserPointage", "Home")'
    });

Контроллер

public JsonResult GetCurrentUserPointage()
{
    List<POINTAGES> Maliste = new List<POINTAGES>();
    Maliste = Db.POINTAGES.ToList();
    var eventList = from e in Maliste
                    select new
                    {
                        Client = e.CLIENT,
                        Secteur = e.CATEGORIE,
                        Activite = e.SPECIALITE,
                        Date = e.DATE_POINTAGE.ToShortDateString(),
                        Duree = e.DUREE.ToString()
                    };
    var rows = eventList.ToArray();
    return Json(rows, JsonRequestBehavior.AllowGet);
}
1
Mokhtar_Nebli 30 Окт 2015 в 14:28

2 ответа

Лучший ответ

Вам необходимо определить, какие columns соответствуют какому свойству в элементах JSON. Я бы также использовал ajax.url вместо устаревшего sAjaxSource и сбросил ajax.dataSrc, потому что ответ представляет собой массив элементов без имени:

$('#dataTablesTable').DataTable({
    bProcessing: true,
    ajax : {
      url : '@Url.Action("GetCurrentUserPointage", "Home")',
      dataSrc : ''
    },
    columns : [
       { data : "Client" },
       { data : "Secteur" },
       { data : "Activite" },
       { data : "Date" },
       { data : "Duree" }
   ]
});
0
davidkonrad 31 Окт 2015 в 12:57

Проблема решена добавить: "dataSrc": ''

$(document).ready(function () {

    $('.dataTables-List').DataTable({
        pageLength: 25,
        dom: '<"html5buttons"B>lTfgitp',
        bProcessing: true,
        "ajax": {
            "url": "/User/GetListUser",
            "type": "GET",
            "datatype": "json",
            "dataSrc": ''
        },                
        "columns": [                     
            { "data": "firstName", "name": "Nombre", "autoWidth": true },
            { "data": "lastName", "name": "Apellido", "autoWidth": true },
            { "data": "userName", "name": "Usuario", "autoWidth": true },
            { "data": "statusID", "name": "statusID", "autoWidth": true }
        ]  ,
        buttons: [
            { extend: 'copy' },
            { extend: 'csv' },
            { extend: 'excel', title: 'ListUser' },
            { extend: 'pdf', title: 'ListUser' },
            {
                extend: 'print',
                customize: function (win) {
                    $(win.document.body).addClass('white-bg');
                    $(win.document.body).css('font-size', '10px');

                    $(win.document.body).find('table')
                            .addClass('compact')
                            .css('font-size', 'inherit');
                }
            }
        ]
    });
});
0
Stephen Rauch 20 Янв 2018 в 02:30