无法获取DataTable来加载所有数据

时间:2015-07-17 23:48:22

标签: jquery datatables

数据似乎有问题,因为我在执行以下操作时获得了Requested unknown parameter 2 for row 0

var items = $('#items').DataTable({
        dom: "<'row'<'col-md-6'l><'col-md-6'f>r>t<'row'<'col-md-6'i><'col-md-6'p>>",
        paginationType: "full_numbers",
        language: {
            lengthMenu: "_MENU_ items per page"
        },
        processing: true,
        serverSide: true,
        stateSave: true,
        ajax: {
            url: "items/data",
            method: 'post'
        },
        columnDefs: [
            {
                targets: ['th-image'],
                searchable: false,
                data: 'image_url',
                render: function (data, type, full) {
                    return '<img src="' + data + '" alt="thumbnail" class="img-thumbnail" />';
                }
            },
            {
                targets: ['th-manufacturer'],
                data: 'manufacturer',
                render: function (data, type, full) {
                    var manufacturer = data.substring(0, 40);

                    if (data.length > 40)
                        manufacturer += '...';

                    return manufacturer;
                }
            },
            {
                targets: ['th-title'],
                data: 'title',
                render: function (data, type, full) {
                    var title = data.substring(0, 40);

                    if (data.length > 40)
                        title += '...';

                    return title;
                }
            },
            {
                targets: ['th-actions'],
                data: 'actions',
                searchable: false,
                sortable: false
            },
            {
                targets: ['th-id'],
                data: 'id',
                searchable: true,
                visible: false
            }
        ]
    });

在这张桌子上:

<table class="table table-striped table-bordered" id="items">
<thead>
    <tr>
        <th class="th-image">Image</th>
        <th class="th-manufacturer">Manufacturer</th>
        <th class="th-mpn">MPN</th>
        <th class="th-upc">UPC</th>
        <th class="th-title">Title</th>
        <th class="th-actions">Actions</th>
    </tr>
    </thead>
    <tbody></tbody>
</table>

字段imagemanufacturertitleactions都显示正确,但mpnupc为空,尽管有值在服务器数据响应中。

我在使用相同类型的初始化值之前创建了这样的DataTables,而不需要columns值,所以我可能会遗漏一些明显的东西,但我还没有找到它

DataTables 1.10.7。

1 个答案:

答案 0 :(得分:0)

由于您要返回一组对象,因此您需要使用columnscolumnDefs选项定义所有列数据。来自manual

  

使用对象的缺点是你需要从每个列的对象中明确地告诉DataTables它应该使用哪个属性。这是使用columns.data和/或columns.render选项完成的。

mpnupc数据属性的定义添加到columnDefs,如下所示,以解决问题。

        {
            targets: ['th-mpn'],
            data: 'mpn'
        },
        {
            targets: ['th-upc'],
            data: 'upc'
        },