Datatables中文网:http://dt.thxopen.com/index.html

尝试:

<table id="sp_table" class="display">
<tbody>
</tbody>
</table> //So you just make the Ajax call "manually" and then use the return to initialise DataTables.
$.ajax( {
"url": 'whatever.php',
"success": function ( json ) {
json.bDestroy = true;
$('#example').dataTable( json );
},
"dataType": "json"
} ); { "aaData": [
[ "2010-07-27 10:43:08", "..."], [ "2010-06-28 17:54:33", "..."],
[ "2010-06-28 16:09:06", "..."], [ "2010-06-09 19:15:00", "..."]
] , "aaSorting": [
[ 1, "desc" ]
], "aoColumns": [
{ "sTitle": "Title1" },
{ "sTitle": "Title2" }
] }
html

<table class="display" id="table"></table>
js $("#table").dataTable({
bJQueryUI:true,
aoColumns:[
{mDataProp:"foo",sTitle:"Foo Title"},
{mDataProp:"bar",sTitle:"Bar Title"}
],
fnServerData: function( sUrl, data, fnCallback){
$.get('data.php', function(res) {
fnCallback({ // process results to match table format
"sEcho":config.sEcho,
"iTotalRecords":res.data.total || res.data.count,
"iTotalDisplayRecords":res.data.count || res.data.total,
"aaData":res.data.list
})
});
}
})
Where data.php is {
data:{
total:200,
count:3,
list:[
{foo:"Foo 1",bar:"Bar 1"},
{foo:"Foo 2",bar:"Bar 2"},
{foo:"Foo 3",bar:"Bar 3"},
]
}
}
I add a new columns by recreating the whole datatable which is not recommended. But here's roughly how I do it:

1. Get column data via ajax

2. Push new column def:

aoColumnDefs.push({
"aTargets": [aoColumnDefs.length]
, "sTitle": sTitle
, "bSearchable": true
, "bVisible": true
, "bSortable": false
, "sClass": "recipe"
}); 3. Push new row data into aaData: $.each(aaData, function (i, rowData) {
rowData.push(newColData[rowData[1]] == undefined ? '' : newColData[rowData[1]]);
}); 4. reinitialize DataTable Removing a column: 1. Get the index into aaData and aoColumnDefs of the column to remove by the column index of the column to remove: var dataIndex = myConstants.numFixedColumns + index; 2. Remove array element at the index obtained in #1. $.each(aaData, function (i, data) {
data.splice(dataIndex, 1);
}); 3. Resequence aTargets: $.each(aoColumnDefs, function (i, column) {
column.aTargets = [i];
}); 4. reinitialize DataTable
I've got DataTables working fine on my page- the only problem I have is dynamically declaring the table headers. I'm using an existing JSON object instead of using DataTables built in AJAX functions (for various reasons). Here's what I've tried so far...

Normal (works):
jQuery('#example').dataTable({
"sPaginationType": "full_numbers",
"aaData": results.DATA ,
"aoColumns": [ {"sTitle": "Name"}, {"sTitle": "County"} ]
}); Give it the JSON (doesn't work):
jQuery('#example').dataTable({
"sPaginationType": "full_numbers",
"aaData": results.DATA ,
"aoColumns": results.COLUMNS
}); Give it a string var (doesn't work):
jQuery.each(results.COLUMNS, function(i, value){
column_names += '{"sTitle": "'+ value + '"}';
if (i+1 != results.COLUMNS.length) column_names += ", ";
}
); // This creates the string '{"sTitle": "NAME"}, {"sTitle": "COUNTY"}' - confirmed in FireBug.
jQuery('#example').dataTable({
"sPaginationType": "full_numbers",
"aaData": results.DATA ,
"aoColumns": [ column_names ]
}); Give it an object var (doesn't work):
function(results){
var columns = new Array();
jQuery.each(results.COLUMNS, function(i, value){
columns.push(column_name={stitle: value})
}
); //Creates the object, confirmed in FireBug
};
jQuery('#example').dataTable({
"sPaginationType": "full_numbers",
"aaData": results.DATA ,
"aoColumns": [ columns ]
}); Help? PS: The code examples were just typed up- there may be some stray commas or something. All the code (and variables) were tested in the browser.
fbasfbas August 2011
I can't see why approach #2 doesn't work unless your aoColumns are not defined correctly.
luketheobscureluketheobscure August 2011
Interesting. Here's the truncated JSON data: {"COLUMNS":["NAME","COUNTY"],"DATA":[[" John Doe","Fresno"],["Billy,"Fresno"],["Tom","Kern"],["King Smith","Kings"]]} Resulting table renders correctly, just without the column names.
fbasfbas August 2011
use the same format as aoColumns (an array of objects) {"COLUMNS":[{ sTitle: "NAME"}, { sTitle: "COUNTY"}],"DATA":[[" John Doe","Fresno"],["Billy,"Fresno"],["Tom","Kern"],["King Smith","Kings"]]} you can use any of the "init options - columns" values listed on http://www.datatables.net/ref or follow the examples at http://www.datatables.net/examples/
luketheobscureluketheobscure August 2011
Thanks so much for helping me out. In the end, I added this right before I declared my dataTable: var columns = [];
jQuery.each(results.COLUMNS, function(i, value){
var obj = { sTitle: value };
columns.push(obj);
}); In case anyone else is looking, this takes the native way that ColdFusion returns JSON columns and puts it into what dataTables expects.

Jquery Datatables 动态列名的更多相关文章

  1. jquery.dataTables动态列--转

    转自 https://www.cnblogs.com/lyeo/p/4765514.html jquery.dataTables  版本1.10.7 直接上代码: 0.table <table ...

  2. jquery.dataTables动态列

    jquery.dataTables  版本1.10.7 直接上代码: 0.table <table id="popReportTable"> <thead> ...

  3. Jquery DataTables相关示例

    一.Jquery-DataTables DataTables 是jquery的一个开源的插件.它具有高度灵活的特性,基于渐进增强的基础,可以为任何表格添加交互.它特性如下: 提供分页,搜索和多列排序: ...

  4. JQuery Datatables(一)

    最近项目中用了Bootstrap的样式风格,控件用了JQuery Datatables,主要有几下几点目标: 实现BootStrap风格的table,使用Ajax获取数据,并有勾选项 可以实现全选,单 ...

  5. jQuery DataTables的简单实现

    DataTables是一个jQuery的表格插件.这是一个高度灵活的工具,依据的基础逐步增强,这将增加先进的互动控制,支持任何HTML表格. 主要特点: 1.自动分页处理 2.即时表格数据过滤 3.数 ...

  6. JQuery DataTables学习

    1.Datatables简单介绍 DataTables是一个jQuery的表格插件.这是一个高度灵活的工具,根据的基础逐步增强,这将添加先进的互动控制.支持不论什么HTML表格. 主要特点: 自己主动 ...

  7. jQuery dataTables四种数据来源[转]

    2019独角兽企业重金招聘Python工程师标准>>> 四种数据来源 对于 dataTables 来说,支持四种表格数据来源. 最为基本的就是来源于网页,网页被浏览器解析为 DOM ...

  8. [jQuery]jQuery DataTables插件自定义Ajax分页实现

    前言 昨天在博客园的博问上帮一位园友解决了一个问题,我觉得有必要记录一下,万一有人也遇上了呢. 问题描述 园友是做前端的,产品经理要求他使用jQuery DataTables插件显示一个列表,要实现分 ...

  9. jquery Datatables 行数据删除、行上升、行下降功能演示

    Datatables 是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能. 官方网站:http://www.datatables.net Datatables ...

随机推荐

  1. Codevs 1958 刺激

    1958 刺激 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description saffah的一个朋友S酷爱滑雪,并且追求刺激(exitement, ...

  2. PHP CURL参数详解

    curl用法:cookie及post 一.cookie用法 <?php $cookie_jar = tempnam('./tmp','cookie'); // login $c=curl_ini ...

  3. 使用link在两个容器之间建立连接(mysql)

    在使用Docker的时候我们会常常碰到这么一种应用,就是我需要两个或多个容器,其中某些容器需要使用另外一些容器提供的服务.比如这么一种情况:我们需要一个容器来提供mysql的数据库服务,而另外两个容器 ...

  4. IBUS-WARNING **: Process Key Event failed: Timeout was reached

    在gvim中ibus敲字时,偶尔会在n秒之后才显示到屏幕,反应死慢.控制台会看到下面的错误信息. (gvim:): IBUS-WARNING **: Process Key Event failed: ...

  5. nginx Engine X静态网页服务器介绍

    Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. 反向代理(Reverse Proxy)方 ...

  6. CentOS6.4 安装aria2多线程下载工具

    aria2是一个Linux下的多线程下载工具,支持HTTP/HTTPS.FTP.BitTorrent.Metalink协议. 平时在linux上下载http上的东西常用如wget.curl命令,但是他 ...

  7. php快递单号查询源码

    贴下记录下php查询快递单号的源码,能查询各种快递的快递单号记录,中通.圆通快递.顺丰快递等都不是问题.只需要在 爱快递(www.aikuaidi.cn)上面申请一个快递key即可,下面把源码分享下, ...

  8. php发送http请求

    http请求有get,post. php发送http请求有三种方式[我所知道的有三种,有其他的告诉我]. file_get_contents();详情见:http://www.cnblogs.com/ ...

  9. Leetcode 解题 Median of Two sorted arrays

    题目:there are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the ...

  10. 2016031601 - 刻录ubuntu的U盘启动盘

    使用UltraISO来刻录ubuntu15.1的系统安装盘. 需要U盘1个,ubuntu15.1系统镜像文件. 具体步骤如下: a.安装UltraISO软件,具体软件安装. b.安装完成后进行系统刻录 ...