【问题标题】:DataTables Ajax Load CallbackDataTables Ajax 加载回调
【发布时间】:2017-01-06 16:04:46
【问题描述】:

我有一个通过 AJAX 获取数据的 DataTable,除了 JSON 对象的 data 成员之外,我还有一个额外的 info 字段,用于确定例如行颜色。

我通过ajax.reload 回调很好地使用了这个信息字段,但是在初始表加载时不会调用这个回调。我尝试使用 XHR 处理程序,但它是在绘制表格之前调用的,所以我已经掌握了 JSON 对象,但没有处理尚未渲染的表格内部。

谁能指出一个回调函数的示例,该函数在初始表格绘制操作后可以访问 JSON 对象? IE。和ajax.reload差不多,只是没有“re”?

谢谢

【问题讨论】:

    标签: jquery ajax datatables


    【解决方案1】:

    您可以使用此处记录的drawCallback 函数https://datatables.net/reference/option/drawCallback

    否则,您可以使用“columnDefs”函数尝试获取完整的行并将其添加到您的 css。例如(未经测试,但应该可以)

    $("#myTable").DataTable({
    
                        "deferRender": true,
                        "columnDefs": 
                        [
                            {
                                "render": function ( data, type, row ) 
                                {
                                    var tr = $(this).closest('tr');
                                    //Now yuo should have the row
    },
                                "className":"colonnaElencoMessaggi",
                                "name":"deviceMessages",
                                "orderable":false,
                                "targets": 2
                            }
                        ]
                    });
    

    希望对你有帮助

    安杰洛

    【讨论】:

    • 感谢您的快速回复。看起来 drawCallback 没有传递 JSON 响应,尽管我现在注意到 initComplete 确实如此,但我在之前搜索时不会遇到这种情况,所以我可能会尝试一下。
    • 我没有检查,但在datatables.net/reference/option/drawCallback 的文档中,您可以使用 api() 函数的示例。也许有用
    【解决方案2】:

    正如您在回复 Angelo 的回答时提到的,请使用 initComplete 选项。

    $('#example').dataTable( {
      "initComplete": function(settings, json) {
        var info = json.info;
        // do whatever with info here...
      }
    } );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-17
      • 2017-08-29
      • 2013-05-15
      • 2014-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多