`

Ext2.0教程二:基本表格GridPanel,从后台数据库取数据

阅读更多

学习使用GridPanel需要先了解Json ,和 Ext.data.Store

json介绍见 http://blog.csdn.net/wayfoon322/archive/2008/07/10/2633428.aspx

Ext.data.Store介绍见:http://blog.csdn.net/wayfoon322/archive/2008/07/11/2638387.aspx

后台需要提供json数据供前台显示。比如下列的json数据

  1. stcCallback1001
  2. ({results:6,template:
  3. [
  4. {id:1,name:'流程1',user:{id:1,name:'wayfoon'}},
  5. {id:2,name:'流程2',user:{id:1,name:'wayoon'}},
  6. {id:3,name:'流程3',user:{id:1,name:'wayfoon'}},
  7. {id:4,name:'流程4',user:{id:1,name:'wayfoon'}},
  8. {id:5,name:'流程5',user:{id:1,name:'wayfoon'}},
  9. {id:6,name:'流程6',user:{id:1,name:'wayfoon'}}
  10. ]
  11. })

stcCallback1001,由ext提供的参数callback自动生成 ,在后台代码中request.getParameter()得到,从1001开始,1002,1003

results 表示记录总数,results这个名称是自定义的,自己可以设定,比如 total:6

template 真正的数据,名称也是自定义的,以下面Ext.data.Store 中的一致就可以。

{id:1,name:'流程1',user:{id:1,name:'wayfoon'}}, 是一条记录,可以看出 user 是一个对象,如果数据中不包含对象不需要这样写

你也可以访问 'http://extjs.com/forum/topics-remote.php' 查看json数据格式,做个比较。

访问后台数据通常是一个链接,

假如你的后台采用java ,又使用Struts2.0 。一切都变的简单。你可以直接,

  1. Stringinfo="{id:'1',name:'wayfoon'}";
  2. request.setAttribute("info",info);
  3. returnSUCCESS;

      info 是String ,值就是json格式的字符串。

      假如你采用servlet则可以

      1. protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
      2. response.addHeader("Cache-Control","no-cache");
      3. response.setContentType("HTML/JavaScript;charset=UTF-8");
      4. PrintWriterout=response.getWriter();
      5. Stringjson="{id:'1',name:'wayfoon'}";
      6. out.print(json)");
      7. }
      8. }

      下面介绍前台Ext部分,可以直接参考

      例子: EXT2.0: GridPanel 分页方法绝好例子

      下面着重介绍ext和后台的交互,

      1. varstore=newExt.data.Store({
      2. proxy:newExt.data.ScriptTagProxy({url:'http://extjs.com/forum/topics-remote.php'}),
      3. reader:newExt.data.JsonReader({
      4. root:'topics',
      5. totalProperty:'totalCount',
      6. id:'post_id'
      7. },[
      8. 'post_id','topic_title','author'
      9. ])
      10. });
      11. store.load({params:{start:0,limit:10}});

      proxy:是数据代理,数据代理(源)基类由Ext.data.DataProxy定义,在DataProxy的基础,ExtJS提供了Ext.data.MemoryProxy、Ext.data.HttpProxy、Ext.data.ScriptTagProxy等三个分别用于从客户端内存数据、Ajax读取服务器端的数据及从跨域服务器中读取数据等三种实现。

      从上面代码中可以看到 代理提交的 url是 'http://extjs.com/forum/topics-remote.php' 。

      实际上在后台接收到的,url是 'http://extjs.com/forum/topics-remote.php?callback=1001&start=0&limit=10' 还有一个参数忘了。

      后台处理代码:struts2.0

      1. publicStringexecute()throwsException
      2. {
      3. Stringaction=request.getParameter("action");
      4. Stringinfo="";
      5. Stringcallback=request.getParameter("callback");
      6. Stringstart=request.getParameter("start");
      7. Stringlimit=request.getParameter("limit");
      8. StringBuffertext=newStringBuffer();
      9. List<?>list=从数据库中去的数据,你可以分页取;
      10. Integerlimit=tv.getStart()+tv.getLimit();
      11. if(limit>list.size())
      12. {
      13. limit=list.size();
      14. }
      15. List<?>templates=list.subList(start,limit);
      16. text.append(callback+"({results:"+list.size()
      17. +",template:[");
      18. for(Itemplateitemplate:templates)
      19. {
      20. text.append("{id:"+itemplate.getId()+",name:'"
      21. +itemplate.getName()+"',user:{id:"
      22. +itemplate.getIuser().getId()+",name:'"
      23. +itemplate.getIuser().getUname()+"'}},");
      24. }
      25. if(text.charAt(text.length()-1)==',')
      26. {
      27. text.deleteCharAt(text.length()-1);
      28. }
      29. text.append("]})");
      30. info=text.toString();
      31. request.setAttribute("info",info);
      32. returnSUCCESS;
      33. }

        info就是需要的json字符串

        输出

        1. stcCallback1001
        2. ({results:6,template:
        3. [
        4. {id:1,name:'流程1',user:{id:1,name:'wayfoon'}},
        5. {id:2,name:'流程2',user:{id:1,name:'wayfoon'}},
        6. {id:3,name:'流程3',user:{id:1,name:'wayfoon'}},
        7. {id:4,name:'流程4',user:{id:1,name:'wayfoon'}},
        8. {id:5,name:'流程5',user:{id:1,name:'wayfoon'}},
        9. {id:6,name:'流程6',user:{id:1,name:'wayfoon'}}
        10. ]
        11. })

        效果见 例子: EXT2.0: GridPanel 分页方法绝好例子

        写完,一个上午才完成两遍,太慢了。

        教程下载地址:http://download.csdn.net/source/594644

        ---wayfoon 20080827

        分享到:
        评论

        相关推荐

          ext2.0(jsp标签)

          8. **强大的表格功能**:EXT 2.0的GridPanel组件支持分页、排序、过滤、编辑等功能,可以处理大量数据并提供高效的显示和操作。 9. **拖放支持**:EXT 2.0支持组件之间的拖放操作,可以用于构建交互式的应用,如...

          Ext2.0中文文档

          5. **数据网格**:Ext的GridPanel是一个功能强大的数据展示组件,可以用来展示大量数据并进行排序、筛选、编辑等操作。它支持行选择、分页、列拖放等功能,是处理表格数据的理想选择。 6. **API文档**:中文文档中...

          ext2.0项目源代码供大家学习ext使用

          6. **GridPanel**:EXT的表格组件,可展示大量数据并支持排序、过滤、分页等功能。 7. **FormPanel**:用于创建表单,支持各种表单元素,并能进行验证和数据提交。 8. **Drag and Drop**:EXT支持拖放操作,允许...

          ext2.0入门教程

          4. **数据绑定**:EXT2.0支持数据绑定,能够将UI组件与数据源(如Store)连接起来,实现数据的实时更新。Store可以连接到各种数据源,如JSON、XML或远程API。 5. **Ajax通信**:EXT的Ajax模块提供了一种简单的方式...

          ext 2.0

          3. **表格网格**:Ext 2.0的表格组件(GridPanel)功能强大,支持分页、排序、过滤、编辑等功能,能处理大量数据并实现高性能渲染。同时,它还提供了行选择、行编辑等多种交互模式。 4. **表单组件**:Ext 2.0提供...

          EXT2.0 API文档

          4. **表单处理**:EXT2.0提供了强大的表单处理功能,包括字段验证、数据绑定和远程提交等。 5. **图表组件**:EXT2.0支持多种图表类型,如柱状图、饼图、线图等,用于数据可视化。 6. **拖放功能**:EXT2.0支持...

          ext2.0 详解和API

          2. **数据绑定**:EXT2.0实现了模型-视图-控制器(MVC)架构,允许数据与UI组件进行双向绑定,提高了数据管理的效率和灵活性。 3. **Ajax支持**:内置的Ajax工具类简化了异步请求,开发者可以轻松地与服务器进行...

          ext2.0中文教程.rar

          3. **数据绑定**:EXT的数据绑定机制允许开发者将界面组件直接连接到数据源,实现数据的实时更新。这部分会涵盖Store(数据存储)、Model(数据模型)和Proxy(数据代理)的使用。 4. **事件处理**:EXT的事件驱动...

          ext2.0网格实践源码

          5. **分页和数据加载**:EXT2.0的GridPanel支持分页,你将看到如何配置和使用PagingToolbar来实现分页功能,以及如何在用户翻页时动态加载数据。 6. **自定义行为**:EXT GridPanel允许开发者自定义很多行为,例如...

          EXT2.0帮助文档CHM版

          例如,文档中会阐述EXT的GridPanel组件,这是一个用于展示表格数据的强大组件,支持排序、分页、行选择等多种功能。开发者可以通过学习GridPanel的配置项和方法,了解如何创建自定义的表格视图。 此外,EXT的窗口...

          ext2.0 中文资料(含多例子)

          1. **强大的UI组件**:Ext 2.0拥有大量的UI组件,如表格、树形结构、网格等,这使得开发者可以快速搭建用户界面。 2. **易于使用的API**:Ext 2.0的API设计友好,易于理解,即使是初学者也能快速上手。 3. **高度可...

          Ext2.0框架的grid使用

          Grid组件在Ext2.0框架中主要用于展示表格形式的数据,支持多样的数据源类型,包括二维数组、JSON数据和XML数据,甚至是用户自定义的数据格式。这一灵活性得益于框架提供的`Ext.data.Store`,它作为数据与Grid间的...

          Ext2.0示例讲解

          在描述中提到,Ext2.0的Grid控件不仅美观,还支持多种数据格式,如二维数组、JSON和XML,甚至允许自定义数据类型。 Grid的核心组成部分包括ColumnModel(列模型)和Store(数据存储)。ColumnModel定义了表格的结构...

          ext2.0中文API(部分)

          这个模块包含了EXT 2.0的各种组件,如表格(GridPanel)、树形视图(TreePanel)、表单(FormPanel)、按钮(Button)、菜单(Menu)等。这些组件都具有丰富的配置选项和事件处理能力,可以根据需求进行高度定制。 ...

          Ext2.0框架的Grid使用介绍

          Grid是Ext2.0中用于展示数据的重要组件之一,它不仅能够显示各种格式的数据(如二维数组、JSON或XML),还支持数据的排序、过滤和分页等功能。Grid的核心在于`Ext.grid.GridPanel`类及其相关的配置项。 ##### 1. ...

          EXT2.0分页

          EXT2.0的分页功能不仅限于简单的数字翻页,还可以与其他组件结合,如GridPanel,实现表格数据的分页。同时,EXT2.0还支持远程分页和本地分页,前者将分页逻辑交给服务器处理,后者则在客户端完成,适用于数据量较小...

          extjs动态生成表格,前台+后台

          GridPanel是一个显示二维数据的组件,通常用于展示大量结构化的信息。在我们的例子中,我们将看到如何通过JavaScript代码来动态构建GridPanel。 在前端部分,HTML代码设置了必要的资源引用,包括CSS样式表和ExtJS的...

          EXT2.0API

          例如,可以使用GridPanel API构建复杂的数据展示表格,通过ColumnModel定制列的显示方式,甚至实现分组、排序和过滤功能。此外,FormPanel API则支持创建各种表单,与服务器端进行数据交互,提供验证和提交功能。 ...

          ext.net 动态创建gridpanel

          GridPanel 是 ExtJS(Ext.NET 的基础)中的一个重要组件,用于展示数据表格。在这个场景中,我们将深入探讨如何使用Ext.NET代码动态创建GridPanel,并在各种窗口中灵活展示。 1. **动态创建GridPanel**: 在Ext...

          Ext表格获取后台数据

          最终,我们使用Ext.grid.GridPanel显示了从后台获取的数据。 ExtJS框架提供了许多强大的功能和组件,例如表格控件、树形控件、表单控件等,使开发者能够快速构建RIA应用程序。 知识点: 1. ExtJS框架的基本概念...

        Global site tag (gtag.js) - Google Analytics