ajax回调函数加载表格,jQuery - 第三方表格插件DataTables使用详解11(创建、渲染、数据请求回调)...

二十二、各种回调函数

1,行创建完毕后的回调

(1)基本介绍

每一行创建完后会自动调用 createdRow函数。

(2)使用样例

下面样例判断成绩为 100分的人员,并对该行添加高亮样式

080f75e77a3323f434878a7c9b4f66dd.png

table.dataTable tbody tr.important {

background-color: #FFFF00;

}

编号姓名成绩

$(document).ready(function() {

$('#myTable').DataTable({

"ajax": 'data.txt',

"createdRow": function (row, data, dataIndex) {

// row : tr dom

// data: row data

// dataIndex:row data's index

if (data[2] == 100) {

$(row).addClass('important');

}

},

});

});

2,行创建完毕,且渲染后的回调

(1)基本介绍

rowCallback函数顺序排在 createdRow后面,它只有等到显示出来后才会调用。所以效率不如 createdRow。

(2)使用样例

这里将不及格的成绩改成红色显示。

e770cf95753c048c5b3ec00de176fef0.png

$('#myTable').DataTable({

"ajax": 'data.txt',

"rowCallback": function (row, data, index) {

// row : tr dom

// data: row data

// index:row data's index

if ( data[2] < 60 ) {

$('td:eq(2)', row).html(''+data[2]+'');

}

}

});

3,表头渲染后的回调

(1)基本介绍

当 thead渲染完毕后会调用 headerCallback方法。

(2)使用样例

这里将第一列的列头标题改成“当前显示的条目数”。

377f2c315b676bb237e46a13892c378f.png

$('#myTable').DataTable({

"ajax": 'data.txt',

"headerCallback": function (thead, data, start, end, display) {

//thead:dom, data:原始的datatable数据,display:当前显示排序好的datatable数据(有可能经过排序)

// start end :当前dispaly数据的开始结束序号

$(thead).find('th').eq(0).html( '当前有 '+(end-start)+' 条记录' );

},

});

4,表尾渲染后的回调

(1)基本介绍

当 tfoot渲染完毕后会调用 footerCallback方法。

(2)使用样例

这里将最后一列的列脚改成显示最高分。

816c40cf0a3caf42463a345c5d35d911.png

$('#myTable').DataTable({

"ajax": 'data.txt',

"footerCallback": function (tfoot, data, start, end, display) {

//tfoot:dom, data:原始的datatable数据,display:当前显示排序好的datatable数据(有可能经过排序)

// start end :当前dispaly数据的开始结束序号

var api = this.api();

$( api.column( 2 ).footer() ).html("最高分:" +

api.column( 2 ).data().reduce( function ( a, b ) {

return parseInt(a) > parseInt(b) ? a : b;

}, 0 )

);

},

});

5,表格渲染时的回调

(1)基本介绍

drawCallback函数在每次 DataTable渲染时都会调用。

但调用这个函数时,table可能没有渲染完成,所以不要在里面操作 table的 dom。如果需要操作 dom应放在后面介绍的 initComplete中。

(2)使用样例

这里我们将每次渲染后表格中所有的可见行输出到控制台。可以看到表格渲染了两次,第一次内容为空。

4575cf76f0cbf454782d881f2349d8e8.png

$('#myTable').DataTable({

"ajax": 'data.txt',

"drawCallback": function( settings ) {

var api = this.api();

// Output the data for the visible rows to the browser's console

console.log( api.rows( {page:'current'} ).data() );

},

});

6,表格显示完毕后的回调

(1)initComplete方法会在表格初始化并全部渲染完毕后调用。

$('#myTable').DataTable({

"ajax": 'data.txt',

"initComplete": function( settings, json ) {

$('div.loading').remove();

},

});

(2)当然我们也可以使用 DataTable的初始化完毕事件响应来实现同样的效果。

$('#myTable')

.on('init.dt', function (event, settings, json) {

$('div.loading').remove();

})

.DataTable({

"ajax": 'data.txt',

});

7,Ajax 数据加载完毕后的回调

(1)基本介绍

通过监听 xhr.dt 事件,我们可以在 ajax加载数据完成后做一些后续操作。(注意:这时数据并没有被渲染出来)

(2)使用样例

这里将获取到的数据打印到控制台中。

6e0ea177ccad7828dd201677a1bbec3f.png

$('#myTable')

.on('xhr.dt', function (e, settings, json, xhr) {

console.log("返回的数据为:", json);

})

.DataTable({

"ajax": "data.php"

});

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Java中使用jQuery表格插件datatables,您需要将datatables插件的JavaScript和CSS文件添加到您的项目中,并将它们链接到您的HTML页面。然后,您可以使用以下步骤来在Java中使用datatables插件: 1.在HTML页面中创建一个表格,并添加一个唯一的ID。 2.在JavaScript代码中初始化datatables插件,并将其绑定到表格的ID。 例如,以下是初始化datatables插件并将其绑定到表格ID为"example"的代码示例: ``` $(document).ready(function() { $('#example').DataTable(); } ); ``` 3.在Java代码中,您需要从数据库中检索数据,并将其转换为JSON格式。 4.将JSON数据传递给您的HTML页面,以便datatables插件可以使用它来填充表格。 例如,以下是从Java中检索数据并将其转换为JSON格式的代码示例: ``` List<Employee> employees = employeeService.getEmployees(); Gson gson = new Gson(); String json = gson.toJson(employees); model.addAttribute("employeesJson", json); ``` 5.在HTML页面中,使用datatables插件的"ajax"选项将JSON数据传递给表格。 例如,以下是将JSON数据传递给表格的代码示例: ``` $(document).ready(function() { $('#example').DataTable( { "ajax": "/employees", "columns": [ { "data": "id" }, { "data": "name" }, { "data": "position" }, { "data": "salary" } ] } ); } ); ``` 在上述代码中,"ajax"选项指向您的Java控制器中的URL,该控制器返回JSON数据。"columns"选项指定表格的列。每个"columns"对象中的"data"属性指定JSON数据对象中的属性。 希望这可以帮助您开始在Java中使用datatables插件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值