javascript - 在数据表中的 fnInitComplete 函数内使用 fnDrawCallback

标签 javascript jquery datatables

您好,我正在使用数据表,并使用异步 XHR 调用来加载表。我想做this但由于我使用 xhr 调用表,我的 fnCreateSelect 函数表示参数未定义,因为尚没有表数据。有没有办法在 fnInitComplete 内部调用 fnDrawCALlback 或反之亦然?

任何有关如何做到这一点的其他建议将不胜感激。

一些代码:这是我的 fnInitcomplete 函数,如果有帮助的话,我也使用固定列。

"fnInitComplete": function() {
                $("thead th").each( function ( i ) {
                    this.innerHTML += "<div class='DataTables_sort_wrapper'><span class='css_right ui-icon ui-icon-carat-2-n-s'></span></div><br/>"+fnCreateSelect( fleetT.fnGetColumnData(i) );
                    $("thead select").each( function (i) {
                        this.visibleIndex = i;
                    } );
                    $('select', this).change( function () {
                    var visIndex = typeof this.visibleIndex == 'undefined' ? 1 : this.visibleIndex;
                    fleetT.fnFilter( $(this).val(), visIndex);
                } );
            });
            new FixedColumns( fleetT, {
        "iLeftColumns": 2,
        "iLeftWidth": 220
    } );

最佳答案

当所有数据都已在客户端上时,您尝试执行的操作效果很好,因为它可以获得不同的值来创建选择。但是,如果您进行服务器端分页,则客户端只有数据集的一小部分,因此您无法获得完整数据集的不同值,而只能获得您当前正在管理的 10/25 行的不同值。 我的建议很简单,您创建选择服务器端(通过对数据库进行正常的 DISTINCT 查询),然后正常渲染它们。

关于javascript - 在数据表中的 fnInitComplete 函数内使用 fnDrawCallback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11789916/

相关文章:

javascript - 数据表 csv 下载将自定义列添加到文件

jquery 数据表无法从第二页开始工作

javascript - 使用刷新 token 处理 401 错误并调用相同的函数

jquery - .next() .prev() 遍历多个 <article> 元素

javascript - Kendo 编辑器以编程方式添加/删除所需的字体集

Javascript/jQuery - 解析返回 'data' 作为 HTML 以供进一步选择?

javascript - dataTables - 如何使所有列在 'draw.dt' 上可排序

javascript - 在 MarkLogic 中,如何仅使用键在 JSON 文档中进行搜索?

javascript - VueJS 中的 For 循环与对象数组中的 TypeScript

javascript - 将textarea输入的值保存到js变量中并使其在任何地方都可见