`
finally_m
  • 浏览: 69337 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(十二) 表格分页及与服务器交互

    博客分类:
  • AJAX
阅读更多

(3) 表格分页
 一次性将成千上万条数据显示在Grid里,然后拖动滚动条查看数据,显然不是什么好主意,在效率上也是不允许的。实际上,Grid控件对性能的要求较高。如果在一个页面上放3个Grid,就可以感觉到响应变慢。如果在每个Grid里显示上千条数据,效率就可想而知了。所以说分页是必不可少的,而EXT提供了方便的集成分页工具条的方式。

下面看一个完整的分页示例:
首先完成一些后台的准备工作,包括数据库表,DAO等。
Student表结构如下:
CREATE TABLE `student` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(50) NOT NULL,
  `age` int(2) NOT NULL,
  `gender` char(1) NOT NULL,
  `email` varchar(50) default NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `name_index` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;

其它类略

page.html
<html>
  <head>
    <title>page.html</title>
 
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" type="text/css" href="ext2/resources/css/ext-all.css" />
    <script type="text/javascript" src="ext2/adapter/ext/ext-base.js"></script>
    <script type="text/javascript" src="ext2/ext-all.js"></script>
    <script type="text/javascript" src="ext2/build/locale/ext-lang-zh_CN.js"></script>
 <script type="text/javascript" src="page.js" charset="gbk"></script> 
  </head>
  <body>
    <div id="grid"></div>
  </body>
</html>

page.js
  Ext.onReady(function(){
     var cm = new Ext.grid.ColumnModel([
         {header:'编号',dataIndex:'id',sortable:true},
         {header:'名称',dataIndex:'name',sortable:true},
         {header:'年龄',dataIndex:'age',sortable:true},
         {header:'性别',dataIndex:'gender',sortable:true},
         {header:'邮箱',dataIndex:'email',sortable:true}
     ]);

     var store = new Ext.data.Store({
      proxy:new Ext.data.HttpProxy({url:'servlet/StudentServlet'}),
         reader: new Ext.data.JsonReader({
          totalProperty:'totalProperty',
          root:'root'
         }, [
             {name: 'id'},
             {name: 'name'},
             {name: 'age'},
             {name: 'gender'},
             {name: 'email'}
         ])
     });

     var grid = new Ext.grid.GridPanel({
         renderTo: 'grid',
         autoHeight: true,
         width:500,
         store: store,
         cm: cm,
         bbar: new Ext.PagingToolbar({
             pageSize: 5,
             store: store,
             displayInfo: true,
             displayMsg: '显示第 {0} 条到 {1} 条记录,共 {2} 条',
             emptyMsg: "没有记录"
         }),
         tbar: new Ext.PagingToolbar({
             pageSize: 5,
             store: store,
             displayInfo: true,
             displayMsg: '显示第 {0} 条到 {1} 条记录,共 {2} 条',
             emptyMsg: "没有记录"
         })
     });
     store.load({params:{start:0,limit:5}});
 });

(4) 与服务器交互
在实际的应用中,表格中的数据一般都是直接存放在数据库表或服务器的文件中。因此,在使用表格控件的时候经常需要与服务器进行交互。ExtJS 使用Ajax 方式提供了一套与服务器交互的机制,也就是可以不用刷新页面,就可以访问服务器的程序进行数据读取或数据保存等操作。比如前面在表格中显示xml 文档中数据的例子中,就是一个非常简单的从服务器端读取数据的例子,再回顾一下代码:
 var store=new Ext.data.Store({
  url: 'test.xml',
  reader:new Ext.data.XmlReader(
   {record:"row"},
   ["id","name","organization","homepage"]
  )
 });

因为Sote 组件接受一个参数url,如果设置url,则ExtJS 会创建一个与服务器交互的Ext.data.HttpProxy 对象,该对象通过指定的Connection 或Ext.Ajax.request 来向服务端发送请求,从而可以读取到服务器端的数据。经验表明,服务器端产生JSon 数据是一种非常不错的选择,也就是说假如服务器的url“student.jsp?cmd=list”产生下面的JSON 数据输出:
{results:[
 {id:1,name:'小王',email:'xiaowang@yahoo.com',sex:'男',bornDate:'1991-4-4'},
 {id:1,name:'小李',email:'xiaoli@yahoo.com',sex:'男',bornDate:'1992-5-6'},
 {id:1,name:'小兰',email:'xiaoxiao@yahoo.com',sex:'女',bornDate:'1993-3-7'}
] }

则前面显示学习信息编辑表格的store 可以创建成下面的形式:
var store=new Ext.data.Store({
 url:"student.jsp?cmd=list",
 reader:new Ext.data.JsonReader({
 root:"result"},
 ["id","name","organization","homepage"])
});

或者:
var store=new Ext.data.JsonStore({
 url:"student.jsp?cmd=list",
 root:"result",
 fields:["id","name","organization","homepage"]
});

其中root 表示包含记录集数据的属性。
如果在运行程序中需要给服务器端发送数据的时候,此时可以直接使用ExtJS 中提供的Ext.Ajax 对象的request 方法。
比如下面的代码实现放服务器的student.jsp?cmd=save 这个url发起一个请求,并在params 中指定发送的Student 对象:
index.jsp
Ext.onReady(function(){
 Ext.get("btn").on("click",function(){
  Ext.Ajax.request({
   url:'student.jsp?cmd=save',
   method:"post",
   success:sFn,
   failure:fFn,
   params:{name:'小李',email:'xiaoli@163.com',bornDate:'1992-5-6',sex:'男'}
  });
 });
 });
function sFn(){
 alert("保存成功");
  }
 function fFn(){
 alert("保存失败");
  }


<input type="button" id="btn" value="ext ajax"/>

student.jsp
<%
 request.setCharacterEncoding("UTF-8");
 String name = request.getParameter("name");
 String sex = request.getParameter("sex");
 String bornDate = request.getParameter("bornDate");
 String email = request.getParameter("email");
 System.out.println("name:"+name);
 System.out.println("sex:"+ sex);
 System.out.println("bornDate:"+bornDate);
 System.out.println("email:"+email);
%>

 

分享到:
评论

相关推荐

    jquery插件--表格分页

    jQuery作为一个广泛使用的JavaScript库,提供了丰富的插件来帮助开发者实现各种功能,包括表格分页。本篇文章将深入探讨jQuery插件在实现表格分页中的应用及其相关知识点。 一、jQuery和表格分页基础 1. jQuery...

    一个对html表格分页的类

    JavaScript是一种客户端脚本语言,它可以在用户的浏览器上运行,无需服务器交互。在这个类中,JavaScript负责处理表格数据的分页逻辑,包括显示和隐藏特定页码的数据,以及处理用户的查询请求。这样,即使没有服务器...

    使用jquery实现表格动态分页

    本教程将详细讲解如何使用jQuery库来实现表格的动态分页,同时结合Java后端进行数据的动态查询和分页处理。 首先,让我们了解动态分页的基本原理。动态分页是指在用户滚动或点击分页按钮时,仅加载当前显示的数据,...

    jQuery json动态数据表格分页代码

    了解以上知识点后,你可以构建一个高效、响应式的动态数据表格分页系统。通过jQuery与PHP、AJAX的配合,实现数据的动态加载,既保证了用户体验,又优化了服务器性能。在实际应用中,还需要考虑错误处理、安全性以及...

    分页插件,表格分页一体

    "分页插件,表格分页一体"这个标题所指的是一个专为表格设计的分页解决方案,它将分页功能与表格紧密结合,提供了一种高效、便捷的方式来管理大量数据的显示。 首先,我们要理解什么是分页。在Web应用中,分页是...

    jQuery动态表格数据分页检索排序代码

    这个项目“jQuery动态表格数据分页检索排序代码”提供了一个纯前端实现的解决方案,无需服务器端的支持,使得用户可以更加便捷地浏览和管理大量数据。 jQuery是一个流行的JavaScript库,它简化了DOM操作、事件处理...

    表格分页效果

    表格分页的基本思想是将大量数据分成多个部分,每次只加载一部分(即一页)到页面上,用户可以通过翻页操作查看其他部分。这既减少了内存占用,又提高了页面响应速度。 2. **JavaScript基础** JavaScript是实现...

    基于Vuejs的表格分页组件

    本知识点将深入讲解基于Vue.js实现的表格分页组件,它对于构建交互性强、性能良好的Web应用具有重要意义。 首先,"基于Vuejs的表格分页组件"是指使用Vue.js框架来设计和实现一个能够处理大量数据并分页展示在表格中...

    js分页表格

    2. CSS样式:定义表格和分页按钮的外观,保持与Bootstrap一致的风格。 3. JavaScript代码:实现数据的异步加载、分页逻辑以及用户交互处理。 4. 可能还包含一个配置对象,用于设置分页的参数,如每页显示条目数、...

    jquery动态表格自定义分页.zip

    在本项目中,"jquery动态表格自定义分页.zip"是一个包含使用jQuery和CSS实现动态表格分页功能的示例。下面将详细讲解这个项目的关键知识点: 1. jQuery:jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历...

    支持页码跳转的jQuery动态数据表格分页插件.zip

    这可能包括与服务器进行Ajax通信的代码,处理用户交互的函数,以及动态更新表格内容的逻辑。开发者需要理解这些脚本以进行个性化配置或扩展功能。 6. **HTML结构**:"index.html"提供了示例或模板,展示了如何在...

    jQuery动态表格数据分页插件

    本文将深入探讨“jQuery动态表格数据分页插件”,这款插件能够帮助开发者轻松实现动态表格数据的分页显示,同时支持自定义设置分页参数,以提高网页的性能和用户交互性。 首先,jQuery是一个广泛使用的JavaScript库...

    ajax 静态网页操作表格分页哦

    总结,Ajax在静态网页操作表格分页中起到关键作用,通过异步请求和局部更新,提高了网页的交互性和性能。开发者需要理解Ajax的工作原理,学会创建和发送Ajax请求,以及处理响应数据,这样才能有效实现表格分页功能。...

    SSH框架异步表格分页

    在本示例中,“SSH框架异步表格分页”是指利用SSH框架实现的网页表格数据的异步分页功能。这种功能通常通过AJAX技术来实现,能够提高用户体验,无需刷新整个页面即可加载更多数据。 首先,让我们详细了解一下SSH...

    easyui简单表格实现分页案例

    通过以上步骤,我们就完成了基于SSM框架和EasyUI的简单表格分页案例。在实际开发中,可能还需要考虑其他因素,如数据的筛选、排序、自定义操作按钮等,但这个基础示例足以让你了解基本流程。记住,实践是检验真理的...

    表格显示并具有分页功能

    `script.js`和`packed.js`可能是JavaScript文件,其中包含了处理表格数据、分页逻辑以及与服务器交互的代码。`说明.txt`可能提供了项目或代码的使用指南,而`懒人建站.url`可能是一个快捷方式,指向一个关于快速搭建...

    jPage jquery-ajax表格动态分页.zip

    总的来说,jPage插件通过结合jQuery和AJAX技术,实现了表格数据的动态加载和分页,降低了服务器压力,提高了网页性能。在实际项目中,开发者可以根据自身需求调整jPage的配置,结合后端的"action文件"实现灵活的数据...

    jquery动态表格数据分页搜索排序代码.zip

    本示例项目"jquery动态表格数据分页搜索排序代码.zip"提供了使用jQuery实现动态表格数据展示、分页、搜索及排序的功能。下面将详细阐述这些功能的实现原理和步骤。 1. **动态表格数据**: 在网页上动态生成表格...

    jQuery表格列表分页样式代码.zip

    总的来说,"jQuery表格列表分页样式代码.zip"为前端开发者提供了一套完整的解决方案,使得在网页中实现高效、美观的表格分页功能变得简单易行。通过对`jQuery表格列表分页样式代码`的深入理解和使用,开发者可以提升...

    jQuery不刷新分页动态数据表格代码.zip

    总结来说,“jQuery不刷新分页动态数据表格代码”利用jQuery的事件处理和Ajax功能,结合分页插件,实现了高效、流畅的网页数据表格分页效果。开发者可以借鉴此代码,根据自己的项目需求进行定制,提升网页应用的交互...

Global site tag (gtag.js) - Google Analytics