我正在尝试让我的JavaScript为“ displayStart”使用动态值。我从返回JSON的php脚本获取数据。
这是我的js:

    balance.list = function () {
    $('#balance').dataTable({
        processing: true,
        ajax: {
            url: 'php/list.php',
            dataSrc: 'data'
        },
        dom: '<"top"flp<"clear">>rt<"bottom"ip<"clear">>',
        pageLength: 50,
        autoWidth: false,
        displayStart: '100',

        columns: [
        {
            width: "10%",
            data: "date"
        }, {
            width: "5%",
            data: "checknum"
        }, {
            width: "75%",
            data: "description"
        }, {
            width: "5%",
            data: "debit"
        }, {
            width: "5%",
            data: "credit"
        }, {
            width: "5%",
            data: "balance"
        }]
    });
};


代替
    displayStart:'100',
我希望它是这样的:
    displayStart:displayStart.displayStart,

但是我将dataSrc设置为data,这是JSON的另一个分支

这是JSON数据:

{
  "displayStart":"100",
  "data": [
  {
    "date":"2015-03-27",
    "checknum":null,
    "description":null,
    "debit":"50.00",
    "credit":"0.00",
    "balance":"500.00"
  },
  {
    "date":"2015-03-28",
    "checknum":null,
    "description":null,
    "debit":"0.00",
    "credit":"250.00",
    "balance":"750.00"
  }
  ]
}


我已经使用成功/错误函数弄乱了ajax部分,但是随后并没有继续完成表。

如何设置值?

最佳答案

可以在加载数据后通过在DataTables初始化代码后添加两个事件处理程序来更改页面,如下所示。

// Handles DataTables AJAX request completion event
$('#balance').on('xhr.dt', function( e, settings, json){
   $(this).data('is-loaded', true);
});

// Handles DataTables table draw event
$('#balance').on('draw.dt', function (){
   if($(this).data('is-loaded')){
      $(this).data('is-loaded', false);
      var api = $(this).DataTable();
      var json = api.ajax.json();
      var page_start = json['displayStart'];

      // Calculate page number
      var page = Math.min(Math.max(0, Math.round(page_start / api.page.len())), api.page.info().pages);

      // Set page
      api.page(page).draw(false);
   }
});

07-26 03:08