jquery - 如何使用fnServerData?

标签 jquery ajax datatables

谁能告诉我如何使用fnServerData

$(document).ready( function() {
  $('#example').dataTable( {
    "bProcessing": true,
    "bServerSide": true,
    "sAjaxSource": "xhr.php",
    "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) {
      oSettings.jqXHR = $.ajax( {
        "dataType": 'json',
        "type": "POST",
        "url": sSource,
        "data": aoData,
        "success": fnCallback
      } );
    }
  } );
} );

下面是我的 Ajax 调用,我想用 fnServerData 替换 ajax 调用

   $.ajax({
        type: 'GET',
        url: url,
        jsonp: true,
        contentType: "application/json",
        dataType: 'jsonp',
        success: function (data) {
            $.each(data.value, function(i,item){
                table.fnAddData(item);
            });
        },
        error: function (e) {
            console.log(e.message);
        }
    });

http://datatables.net/ref#fnServerData

什么是 sSource、fnCallback 和 oSettings?谁能告诉我如何使用fnServerData

最佳答案

sSource、fnCallback 和 oSettings 由 Datatables 生成。

sSource 是您的 ajax 调用的 url。当您初始化数据表时,您可以在 sAjaxSource 中指定它。因此,您应该将 url var 作为 sAjaxSource 传递。

oSettings 由 datatables js 创建和维护。它存储有关数据表状态的重要信息。详细文档可以在这里找到: https://datatables.net/docs/DataTables/1.9.0/DataTable.models.oSettings.html

但是我认为你的成功函数是不必要的。您应该在初始化期间指定 aoColumns 作为选项,然后数据表将为您填充数据。

$(document).ready( function() {
 $('#example').dataTable( {
   "aoColumns": [
       { "mData": "engine" },
       { "mData": "browser" },
       { "mData": "platform.inner" },
       { "mData": "platform.details.0" },
       { "mData": "platform.details.1" }
     ]
   }),
   "bProcessing": true,
   "bServerSide": true,
   "sAjaxSource": url,
   "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) {
     oSettings.jqXHR = $.ajax( {
       "dataType": 'json',
       "type": "POST",
       "url": sSource,
       "data": aoData,
       "success": fnCallback,
       "error": function (e) {
           console.log(e.message);
       }
     });
   }
 });
});

有关 aoColumns 的更多信息:http://www.datatables.net/usage/columns 另外,请查看数据表页面上的示例。你需要的任何东西都应该有一个例子: http://www.datatables.net/usage/columns

问候, 萨兹

<小时/>

关于jquery - 如何使用fnServerData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22105762/

相关文章:

自定义服务器的 AJAX HTTP 协议(protocol)响应问题

jquery - Uncaught ReferenceError ,$ 未定义。如何修复它?

javascript - 在 php 中单击按钮添加表行并设置字段值

javascript - 在 javascript 中使用 PHP 文件时出错

javascript - 多次循环调用 API 获得随机结果

c# - ASP.NET MVC 在 jquery DataTables 中显示 Enum 列的文本?

jquery - 数据表、计算列

ruby-on-rails - Rails 6 + yarn + 数据表问题

javascript - mousedown 上的动画环形图

javascript - jquery获取选中的复选框行并将其传递到ajax中