DataTables数据库分页

你可以看到额外的DataTable插件的完整列表。所有这些插件都是额外添加附加的DataTable,但你也可以使用功能强大的API自定义数据表行为。有几个提到的插件增强平原表的一个例子如下图所示:

在这个例子中添加一组插件的公司名称的第一个字母,分区,行和列过滤部件,增加了过滤表上方的下拉菜单。在上图中,公司过滤伦敦镇。添加这些插件很简单 - 你只需要修改初始化呼叫,如果需要添加一些参数,如下面的示例所示:

$(document).ready(function () { $(\

\ \

\ })

.rowGrouping({sGroupBy: \});

如果你有一个合理数量的记录表中,你不需要担心这些功能。只呈现一个普通的表,并应用插件,你需要一些组合。

但是,如果你有很多的记录,表中所示,你想避免复杂的JavaScript在浏览器中处理,你可以实现处理逻辑在服务器端(例如,在一些servlet),设置的DataTable查询服务器通过AJAX调用,以便采取应显示的信息。这种模式是在下面的部分描述.

完全Ajax化的表-服务器端处理模式

与jQuery开发的DataTable插件,它是通过配置数据表,以获取所需的数据查询服务器通过AJAX调用,可以实现客户端 - 服务器交互。在这种情况下,该插件将保持客户端的UI状态,处理所有的事件,但它不会处理数据。与其这样,它会调用服务器端的页面,后期的当前状态信息和所需的数据,来自服务器的响应,并刷新表格内容。

在数据表的网站上,有服务器端配置插件的jQuery的DataTable发送到一个PHP页面的请求,并得到在当前视图中显示的数据,应是一个例子。服务器响应格式化为一个JSON对象,在客户端解析,并显示在表体。

在这种情况下,每个事件(改变应显示每页项目的数量,输入关键字搜索过滤器,排序,按下按钮,分页等)触发的DataTables插件来发送当前页面的信息,搜索过滤和排序列的服务器页面。所示的请求,服务器页面返回JSON作为一个结果和数据表显示当前表页时,使用该数据阵列。在这种模式下,一次完整的页面,而不是多个较小的请求被发送时,新的信息是必需的,和从服务器返回的数据量最小。数据表,在这个例子中,呼叫/ CompanyAjaxDataSource URL,并发送关于用户操作的信息。服务器端的配置了jQuery的DataTable插件可以在这里找到完整的例子。服务器端模式的一个主要问题是执行服务器端的逻辑,接受从客户端组件的参数,执行行动,并返回数据如预期。

中的AJAX模式下,只有最小量的数据被提供给该插件使用JSON。该插件将Ajax请求发送到服务器认为的当前状态信息(当前页面过滤标准,页码等)。服务器接受AJAX调用,并决定什么样的信息应该显示在客户端上,并返回一个JSON响应返回给插件。请注意,在这种情况下,处理必须在服务器端实现。 AJAX模式,没有相关的信息中生成的视图页面,因此它甚至可以是一个静态HTML页面。在这个例子中使用的HTML页面的一个例子显示在下面的列表:

Using jQuery DataTables plugin with AJAX </p><p> source implemented in Java web application

rel=\

type=\

Company name Address Town

正如你可以看到,表体完全是空的,因为使用了AJAX调用jQuery的插件将被填充的DataTable。在文档准备事件,初始化数据表与另外三个参数: bServerSide-指示从服务器端获取DataTable的信息 sAjaxSource –定义插件数据的URL

bProcessing (optional)-用于显示“处理”信息,当Ajax调用执行的时候 服务器端代码的关键部分是组件,将提供数据的jQuery的DataTable插件-在这种情况下,这是在服务器端组件时反应被称为的sAjaxSource页面。这可以是任何的servlet,JSP页面,或任何服务器端的代码,基于从插件发送的参数,返回一个JSON响应。插件的jQuery的DataTable服务器端发送大量的参数数据表的网站上,你可以找到详细的文档,但在这里是最重要的:

sEcho –达到整型值所使用的数据表同步的目的。相应从服务器代码中返回的值。 sKeyword –文本输入文本框中,然后在过滤器中,用来过滤记录. iDisplayStart –用来显示第一条记录(用于分页)

iDisplayLength –用于返回记录(此值中选择“显示美也下拉***项目”的价值相等),此值也可用于分页 iColumns – 表中的列数

iSortingCols –用于排序的列数。通常这个值是1,但如果用户订单超过一列(按住shift键的同时点击标题单元格),

iSortCol_0, iSortCol_1, iSortCol_2, etc. -用于排序结果的列的ID。如果结果是有序的,您应该订购一列结果由iSortCol_0列.

sSortDir_0, sSortDir_1, sSortDir_2, etc. - 用于排序的每个列的排序方向。如果结果是有序的一列,“升序”或“降序”值,将返回在sSortDir_0参数。在多列的顺序的情况下,这个数组中的每个参数的方向相匹配的列在iSortCol_参数

服务器端的组件应该有GET方法时将调用插件中发送一个AJAX请求的处理程序。此方法应该采取上述的参数,处理数据,并准备将被发送到该插件的值。从servlet返回的响应中的一个例子示出在下面的例子:

{ \

\

\ \

[\ [\

[\ [\ [\

[\ [\ [\ [\ ] }

服务器返回DataTable插件的值:

----sEcho -一个整数值,用于同步的目的的数据表。在每个呼叫发送到服务器端的页上,插件的数据表中的序列号在sEcho参数发送。必须在响应中返回相同的值,因为数据表使用同步和匹配请求和响应。

----iTotalRecords -整数值,表示未经过滤的总数量上存在的服务器端和应用过滤器,如果没有,可能会显示的记录。此值仅用于显示数据表,当用户键入一个关键字,在搜索文本框中,显示“显示1到10的23项共51项(过滤)”的消息。在这种情况下,的iTotalRecords在响应中返回的值等于51.

----iTotalDisplayedRecords -整数值,表示当前过滤器的数量相匹配的记录。如果用户在搜索文本框中不输入任何值,这个值应该是相同的作为

iTotalRecords值。插件中的数据表使用这个值来确定将需要多少个页面生成分

页-如果这个值是小于或等于当前页面大小,分页按钮将被禁用。当用户键入一个关键字,在搜索文本框中,数据表显示“显示1到10,共23项(共51项)过滤”的消息。在这种情况下,的iTotalDisplayedRecords在响应中返回的值等于23。

----aaData -一个二维数组,表示将要显示在表中的单元格的值。当DataTable中接收数据,它将填充表格单元格的值从aaData数组。在二维阵列中的列的数量必须与HTML表中的(甚至是隐藏的)的列的数量,并可以显示在当前页上的项目数的行数应等于(例如, 10,25,50,或100 -这个值将被选中“显示XXX项目”下拉列表)。

在这种情况下,则返回一个矩阵将被显示的单元格。然而,这不是唯一的格式可以使用。您也可以返回一个数组的JSON对象中的格式如下:

{

\

\

\ \

{\ {\Centre\

{\ {\Road\

{\ {\

{\ {\ {\ {\ ] }

在这种情况下,返回在数组中的命名属性,而非阵列的阵列,如在前面的情况。DataTable的初始化调用应略有变化,因为我们需要对象的属性映射到表列。初始化调用下面的代码所示:

$(document).ready(function () { $(\ \

\ \

\ \ \{ \{ \{ \ ] }); });

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4