【问题标题】:DataTable is not populated when data is returned返回数据时不填充 DataTable
【发布时间】:2023-03-19 06:47:01
【问题描述】:

我的页面上有很多数据表,我有一个通用的方法来填充它们,除了一个之外它们都可以正常工作。

我的ajax方法如下:

    function AjaxGet(url, tableName) {
        $.ajax({
            method: 'GET',
            url: url,
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                $('#' + tableName).dataTable({
                    destroy: true,
                    'bPaginate': false,
                    'aoColumns': DetermineColumns(tableName),
                    'aaData': data,
                    'sDom': '<"top">t<"bottom"><"clear">',
                    'bSort': false
                });
            }
        });
    };

我知道输入的 URL 和表名是正确的。

当我在开发者工具中调试时,我的数据如下所示:

DetermineColumns 函数包含 if..else.. 检查直到找到正确的表名,它成功完成,然后将以下内容返回到 aoColumns

        return [
                {
                    'mDataProp': 'PartNum'
                },
                {
                    'mDataProp': 'ukstk'
                },
                {
                    'mDataProp': 'ukfob'
                },
                {
                    'mDataProp': 'de'
                },
                {
                    'mDataProp': 'fr'
                },
                {
                    'mDataProp': 'es'
                },
                {
                    'mDataProp': 'ae'
                },
                {
                    'mDataProp': 'usa'
                },
                {
                    'mDataProp': 'mx'
                },
                {
                    'mDataProp': 'jx'
                }
            ];

这是我的 HTML 表格:

<div class="row">
<div class="col-md-6">
    <table id="stdCostTable" class="table input">
        <thead>
            <tr>
                <th></th>
                <th>
                    UK-STK
                </th>
                <th>
                    UK-FOB
                </th>
                <th>
                    DE
                </th>
                <th>
                    FR
                </th>
                <th>
                    ES
                </th>
                <th>
                    AE
                </th>
                <th>
                    USA
                </th>
                <th>
                    MX
                </th>
                <th>
                    JX
                </th>
            </tr>
        </thead>
        <tbody>
        </tbody>
    </table>
</div>

请有人帮忙弄清楚为什么有问题的数据表没有被填充?

谢谢!

我也没有收到来自控制台或调试器的任何错误。就数据表而言,没有数据,因此,初始化它正确显示消息“表中没有可用数据”,但数据在分配给“aaData”时位于“数据”对象中。

【问题讨论】:

    标签: jquery datatable


    【解决方案1】:

    我认为data 应该是对象数组(或数组),而不是对象本身。检查initialization example(我假设您使用的是旧版本)

    【讨论】:

    • 我正在导入数据表 1.10.9 &lt;script src="https://cdn.datatables.net/1.10.9/js/jquery.dataTables.min.js"&gt;&lt;/script&gt;
    • 是的,谢谢。我没有点击它只返回一个对象,因为其他对象都是返回列表。
    • 很高兴它成功了!顺便说一句,您正在使用旧版 API。如果可能的话,我建议采用新的,因为它更强大(也更漂亮)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 2013-06-02
    • 1970-01-01
    • 2022-01-22
    • 2023-03-31
    相关资源
    最近更新 更多