今天想找一个比较不错的表格插件,以前使用过一些,最终觉得DataTables不错,决定深入研究一下,便把官方文档的一个带数据库的事例自己亲自在eclipse做了一遍,途中非常坎坷,足足费了一个下午,还好结果比较圆满,下面做一下总结:
1、问题:加载数据问题。
官方给的事例是用Php说明动态加载数据,我是做jsp的,当然得自己做,如何用jsp生成json格式数据成了第一个问题。下面是解决方案。首先下载一个插件,json-taglib.jar 放置WEB-INF/libX下,这样就可以在eclipse中使用如下的<json:object></json:object>标记输出json数据了,注意:我现在做的是jsp输出json格式数据,不是后台servlet生成。json-taglib.jar的使用见网址:http://json-taglib.sourceforge.net/tutorial.html 本人的生成数据方式如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="json" uri="http://www.atg.com/taglibs/json" %> <%@page import="cn.heu.po.*,cn.heu.db.*"%> <% List<Ajax> l=new ArrayList<Ajax>(); String sql="select * from ajax "; l=DBUtil.getResults(sql); //查询数据 pageContext.setAttribute("items",l); // request.setAttribute("items",l); //两种方式均可 %> <json:object> <json:array name="aaData" items='${items}' var="item"> <json:array> <json:property value="${item.engine}"></json:property> <json:property value="${item.browser}"></json:property> <json:property value="${item.platform}"></json:property> <json:property value="${item.version}"></json:property> <json:property value="${item.grade}"></json:property> </json:array> </json:array> </json:object>
此文档主要是生成json格式数据, 注意生成的json格式数据必须是这样的 { "aaData": [ ["Trident","Internet Explorer 4.0","Win 95+","4","X"], ["Trident","Internet Explorer 5.0","Win 95+","5","C"], ["Other browsers","All others","-","-","U"] ... ] }
然后下面的网页调用该jsp显示后台数据: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rel="shortcut icon" type="image/ico" href="http://www.datatables.net/media/images/favicon.ico" /> <title>DataTables example</title> <style type="text/css" title="currentStyle"> @import "css/demo_page.css"; @import "css/demo_table.css"; @import "css/demo_table_jui.css" @import "css/ui-lightness/jquery-ui-1.8.4.custom.css" </style> <script type="text/javascript" language="javascript" src="js/jquery.js"></script> <script type="text/javascript" language="javascript" src="js/jquery.dataTables.js"></script> <script type="text/javascript" charset="utf-8"> $(document).ready(function() { $('#example').dataTable( { "sPaginationType": "full_numbers", "oLanguage": { "Search": "搜索:" }, "iDisplayLength": 10, "bProcessing": true, "bServerSide": fasle, // 注意该属性允许通过服务端加载数据,设为true即可。现在是jsp在客户端翻译 "sAjaxSource": "jsp/test_dt.jsp", //实际是返回一个json字符串 "oLanguage": { //汉化 "sLengthMenu": "每页显示 _MENU_ 条记录", "sZeroRecords": "没有检索到数据", "sInfo": "当前数据为从第 _START_ 到第 _END_ 条数据;总共有 _TOTAL_ 条记录", "sInfoEmtpy": "没有数据", "sProcessing": "正在加载数据...", "oPaginate": { "sFirst": "首页", "sPrevious": "上一页", "sNext": "下一页", "sLast": "尾页" } } } ); } ); </script> </head> <body id="dt_example"> <div id="container"> <div class="full_width big"> <i>DataTables</i> </div> <h1>Preamble</h1> <h1>动态加载数据</h1> <div id="dynamic"> <table cellpadding="0" cellspacing="0" border="0" class="display" id="example"> <thead> <tr> <th width="20%">Rendering engine</th> <th width="25%">Browser</th> <th width="25%">Platform(s)</th> <th width="15%">Engine version</th> <th width="15%">CSS grade</th> </tr> </thead> <tbody> <tr> <td colspan="5" class="dataTables_empty">加载数据。。。</td> </tr> </tbody> <tfoot> <tr> <th>Rendering engine</th> <th>Browser</th> <th>Platform(s)</th> <th>Engine version</th> <th>CSS grade</th> <th></th> <th></th> </tr> </tfoot> </table> </div> </div> </body> </html>
这样即可加载数据了。
问题2、出现以下问题的原因:
“当前数据为从第 1 到第 NaN 条数据;总共有 NaN 条记录 (filtered from NaN total entries)”
注意到上边的
<script type="text/javascript" charset="utf-8"> $(document).ready(function() { $('#example').dataTable( { "sPaginationType": "full_numbers", "oLanguage": { "Search": "搜索:" }, "iDisplayLength": 10, "bProcessing": true, "bServerSide": fasle, // 注意该属性允许通过服务端加载数据,设为true即可。现在是jsp在客户端翻译 "sAjaxSource": "jsp/test_dt.jsp", //实际是返回一个json字符串
bServerSide属性值为false,因为现在是jsp作为数据源,jsp的执行是在客户端进行的,不是在服务器执行,所以设置为false,一开始我设置为true,所以出现上述错误。详细阐述主要参见官方有关该部分的说明:http://datatables.net/usage/server-side
先摘出部分如下:When using server-side processing, DataTables will make an XHR request to the server for each draw of the information on the page (i.e. when paging, sorting, filtering etc). DataTables will send a number of variables to the server to allow it to perform the required processing, and then return the data in the format required by DataTables.
这个功能主要是为了提升大数据量时使用的,正好适合我的需求。
相关推荐
在使用jQuery和DataTable插件构建数据表格时,有时我们需要实现动态数据管理,比如删除记录后刷新表格显示。这里的问题在于,当你直接通过Ajax删除数据并尝试重新加载表格时,DataTable并不会自动更新,而是将新数据...
在使用多个jquery.datatable控件并置入同一个页面的时候,可能会遇到checkbox全选功能异常的问题。具体表现为,当点击全选复选框时,页面上所有的datatable表格的全选复选框都会被选中,而不是仅限于当前操作的表格...
这个问题通常发生在尝试在`DataTables`中同时使用`FixedHeader`插件和滚动功能时遇到的冲突。 首先,我们来了解`DataTables`。它是一个强大的开源库,能够将HTML表格转化为交互式数据视图,提供排序、过滤、分页等...
最后,文章总结了如何使用Bootstrap jQuery dataTable实现表格数据的异步刷新,并鼓励用户对遇到的问题进行提问,以便作者及时回复。同时,作者感谢了用户对网站的支持,这体现了社区互助和分享精神。 综上所述,...
注意,虽然我们使用了CDN链接,但你也可以将这些库文件下载到本地项目中,以避免网络延迟或不可用的问题。此外,DataTable有许多可配置的参数和扩展,可以根据项目需求进行定制,如自定义导出的样式、格式等。 在...
关于“源码”,在学习和使用jQuery滚动插件时,理解源码可以帮助开发者更好地定制功能或解决遇到的问题。通过查看插件源码,我们可以了解其内部工作原理,比如如何计算滚动速度、如何处理边界条件等。 此外,压缩包...
tablesorter是一个流行的jQuery插件,用于实现表格排序功能。如果在使用中出现加载失败,例如908行出现异常字符错误,可能是由于编码问题或者源代码中有不被浏览器识别的特殊字符。在这种情况下,删除引起问题的字符...
在使用jQuery插件dataTables时,有时我们需要为表格添加一个序号列,以便更好地展示数据。dataTables是一个强大的JavaScript库,用于将HTML表格转换为高度交互、功能丰富的数据展示工具。在这个教程中,我们将探讨...
标签"dataTable"表明此问题与JavaScript库jQuery DataTables相关,它是一个用于增强HTML表格功能的插件,允许用户进行排序、搜索、分页等操作。在上述代码中,dataTable可能被用于前端展示和初步的数据处理,但主要...
10. **文档和社区支持**: DataTables有详尽的官方文档和活跃的开发者社区,遇到问题时,可以通过查阅文档或在线寻求帮助来解决问题。 总的来说,"dataTable.zip" 提供了一个集成了Bootstrap样式的自定义DataTable...
标题中的"Laravel开发-datatable"指的是使用Laravel 4框架来集成和利用DataTables插件,这是一个流行且功能强大的jQuery库,专门用于增强HTML表格的功能。 首先,我们要理解Laravel 4的基础架构。Laravel是一个优雅...
在Java Web开发中,`Datatable` 是一个广泛使用的JavaScript库,它提供了强大的数据操作和展示功能,尤其在处理服务器端数据分页、排序、过滤等需求时非常实用。本项目是一个`Datatable`与Java后端结合的实战运行...
例如,使用DataTable的NestedView功能可以创建多级表格。 3. **服务器端与客户端交互**: ASP.NET中的服务器控件在回发时会失去状态,因此在处理不规则表格时,可能需要在客户端进行部分操作,以避免不必要的页面...
在使用jQuery Datatables进行网页数据展示时,可能会遇到表头(thead)与表格内容(tbody)对齐问题,尤其是在浏览器窗口大小变化或者响应式布局中。这个问题通常表现为表头与内容列宽不一致,造成视觉上的错位。...
6. **插件应用**:jQuery拥有丰富的第三方插件,如Bootstrap、DataTable、Validation等,这些插件可以扩展jQuery的功能,实现更复杂的交互和展示效果。 7. **链式操作**:jQuery的方法返回的是jQuery对象本身,这...
同时,由于其广泛的社区支持和持续的更新,遇到问题时通常可以找到解决方案或获得帮助,降低了维护成本。因此,掌握jQuery DataTables对于任何涉及大量数据展示和操作的Web开发项目都是极其有价值的。
在本文中,我们将探讨jQuery插件DataTables的分页开发经验。DataTables是一个强大的JavaScript库,用于增强HTML表格,提供高级排序、搜索、过滤和分页功能。在使用DataTables进行分页开发时,通常涉及前端和后端的...
初始化DataTables非常简单,只需要在文档加载完成后,使用jQuery选择表格并调用`.dataTable()`方法即可。此外,还可以通过传递一个选项对象来自定义DataTables的行为,比如分页类型可以设置为"full_numbers",这样...