微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – 如何使用fnServerData?

谁能告诉我如何使用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,"sAjaxSource": url,oSettings ) {
     oSettings.jqXHR = $.ajax( {
       "dataType": 'json',"success": fnCallback,"error": function (e) {
           console.log(e.message);
       }
     });
   }
 });
});

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

问候,SAZ

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐