热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jquerydatatable实现表格加载,分页和删除功能

近期更换技术,采用bootstrap的布局方式来进行项目编写,由于bootstrap为前端布局框架,好多功能实现需要借助插件完成,比如表格的实现。由于第一次接触datatable插

近期更换技术,采用bootstrap的布局方式来进行项目编写,由于bootstrap为前端布局框架,好多功能实现需要借助插件完成,比如表格的实现。

由于第一次接触datatable插件,找了好长时间的资料才找齐一套不太完整的方案(至少能进行项目),贴出代码,自己巩固一下知识,也给遇到相同问题的朋友一个解决思路。

引用data-table的css和js。

/vendors/dataTables/css/dataTables.bootstrap.min.css" rel="stylesheet">


我这边采用了bootscript风格的分页样式,所以会有 dataTables.bootstrap.min.css 和 dataTables.bootstrap.min.js。

分页代码:

var lang = {
"sProcessing": "处理中...",
"sLengthMenu": "每页 _MENU_ 条",
"sZeroRecords": "没有匹配结果",
"sInfo": "当前显示第 _START_ 至 _END_ 条,共 _TOTAL_ 条。",
"sInfoEmpty": "当前显示第 0 至 0 条,共 0 条",
"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
"sInfoPostFix": "",
"sSearch": "本地搜索:",
"sUrl": "",
"sEmptyTable": "暂无数据",
"sLoadingRecords": "载入中...",
"sInfoThousands": ",",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "上页",
"sNext": "下页",
"sLast": "末页",
"sJump": "跳转"
}
};
// 网上抄的显示信息。
$('#id').dataTable({
"language": lang, //提示信息
"autoWidth": false, //自适应宽度,
"searching": false, //是否允许Datatables开启本地搜索
"paging": true, //是否开启本地分页
"lengthChange": false, //是否允许产品改变表格每页显示的记录数
"info": true, //控制是否显示表格左下角的信息
//跟数组下标一样,第一列从0开始,这里表格初始化时,第四列默认降序
"scrollX": true,
"ordering": false,
"iDisplayLength": 20,
"serverSide": false,
// 重点是进行ajax请求和数据加载。
“ajax”:{
"url": that._servlets.search,
"type": 'POST',
"dataType": 'json',
"data": function () {
// data为参数传递,其他传递方式我没有尝试。
return JSON.stringify(dataJson);
}
},
"columns":[
{"data": "id", "className": "hide"},
{"data": "sequenceNum"},
{"data": "name"},
{
// 这里是编辑和删除两个按钮的书写方式。
"data": function (obj) {
return '编辑 '
}
}
]
});

上面这样就可以实现ajax请求数据并且加载到表格了,但是有个问题就是json数据必须带有一个标识才能正常的在columns里面调用数据,这里我没有找到合适的办法。

《jquery-datatable实现表格加载,分页和删除功能》《jquery-datatable实现表格加载,分页和删除功能》

json的格式需要有一个“data”的东西才行,这个和columns里面的data是对应的。

下面是删除功能的实现

var id = '';
var tables = $('#dvgDiseaseCategory').DataTable();
$('#dvgDiseaseCategory tbody').on('click', 'button#btnDelete', function () {
var data = tables.row($(this).parents('tr')).data();
id = data.id;
});
// 大概意思就是获取到点击删除按钮的这一行,然后根据行来找到其中的数据组,然后再提取对应的数据。我这边是把id提取出来,再外部进行的删除方法。
// 删除方法的实现就是点击删除按钮时,弹出一个bootstrap的模态框,再点击模态框的确定按钮时,执行一次删除的ajax请求,然后再进行一次加载查询的函数更新表格。

在这里会出现一个问题,再次加载查询函数调用datatable时,会弹出一个好多东西的弹出框,我查资料以后,认为时再次调用时上一次的datatable组件还在。虽然不知道理解的对不对,但是解决方案就是在其他地方再次调用datatable时,必须先将上一次的datatable组件销毁,这样就能顺利调用了。

销毁datatable组件的方式:

var table = $('#id').dataTable();
//如果datatable存在,将其销毁。
if(table){
table.fnDestroy();
}
//销毁之后在调用。
search();


推荐阅读
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • Vue 实现表格分页功能详解
    本文将详细介绍如何在 Vue 中实现表格的分页功能,包括代码示例和具体实现步骤,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 十三、实现模糊查询功能
    本文介绍了在index.jsp页面中实现模糊查询功能的具体步骤,包括添加必要的HTML元素和JavaScript代码。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • javax.mail.search.BodyTerm.matchPart()方法的使用及代码示例 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • 本文深入探讨了WinRing0及其源代码实现,详细解析了如何通过获取Ring0权限在应用程序中直接执行需要Ring0权限的CPU指令。此外,文章还提供了实例截图和核心代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文深入解析了 jQuery 中用于扩展功能的三个关键方法:`$.extend()`、`$.fn` 和 `$.fn.extend()`。其中,`$.extend()` 用于扩展 jQuery 对象本身,而 `$.fn.extend()` 则用于扩展 jQuery 的原型对象,使自定义方法能够作为 jQuery 实例的方法使用。通过这些方法,开发者可以轻松地创建和集成自定义插件,增强 jQuery 的功能。文章详细介绍了每个方法的用法、参数及实际应用场景,帮助读者更好地理解和运用这些强大的工具。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • 本文全面解析了JavaScript中的DOM操作,并提供了详细的实践指南。DOM节点(Node)通常代表一个标签、文本或HTML属性,每个节点都具有一个nodeType属性,用于标识其类型。文章深入探讨了DOM节点的创建、查询、修改和删除等操作,结合实际案例,帮助读者更好地理解和掌握DOM编程技术。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 在使用 jQuery 的 `html()` 方法时,我发现了一个奇怪的现象:该方法无法完整地插入指定的字符串内容。具体来说,当尝试插入较长或包含特殊字符的字符串时,部分内容可能会被截断或丢失。这一问题可能与 jQuery 对字符串的处理方式有关,建议在实际应用中进行充分测试以确保数据完整性。 ... [详细]
  • 深入解析:React与Webpack配置进阶指南(第二部分)
    在本篇进阶指南的第二部分中,我们将继续探讨 React 与 Webpack 的高级配置技巧。通过实际案例,我们将展示如何使用 React 和 Webpack 构建一个简单的 Todo 应用程序,具体包括 `TodoApp.js` 文件中的代码实现,如导入 React 和自定义组件 `TodoList`。此外,我们还将深入讲解 Webpack 配置文件的优化方法,以提升开发效率和应用性能。 ... [详细]
  • SQLite数据库CRUD操作实例分析与应用
    本文通过分析和实例演示了SQLite数据库中的CRUD(创建、读取、更新和删除)操作,详细介绍了如何在Java环境中使用Person实体类进行数据库操作。文章首先阐述了SQLite数据库的基本概念及其在移动应用开发中的重要性,然后通过具体的代码示例,逐步展示了如何实现对Person实体类的增删改查功能。此外,还讨论了常见错误及其解决方法,为开发者提供了实用的参考和指导。 ... [详细]
author-avatar
JoanNewLife
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有