Chinaunix首页 | 论坛 | 博客
  • 博客访问: 96092
  • 博文数量: 34
  • 博客积分: 925
  • 博客等级: 准尉
  • 技术积分: 350
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-15 11:52
文章分类

全部博文(34)

文章存档

2011年(34)

我的朋友

分类: 系统运维

2011-08-31 12:28:21

1、表格GridPanel概述

  ExtJS中的表格功能非常强大,包括了排序、缓存、拖动、隐藏某一列、自动显示行号、列汇总、单元格编辑等实用功能。

  表格由类Ext.grid.GridPanel定义,继承自Panel,其xtype为grid。ExtJS中,表格Grid必须包含列定义信息,并指定表格的数据存储器Store。表格的列信息由类Ext.grid.Column(以前是由Ext.grid.ColumnModel定义)、而表格的数据存储器由Ext.data.Store定义,数据存储器根据解析的数据不同分为JsonStore、SimpleStroe、GroupingStore等。

2、表格应用示例

  我们首先来看最简单的使用表格的代码:

 

  1. Ext.onReady(function(){
  2.   var data=[ [1, 'EasyJWeb', 'EasyJF',''],
  3.            [2, 'jfox', 'huihoo',''],
  4.            [3, 'jdon', 'jdon',''],
  5.            [4, 'springside', 'springside',''] ];
  6.   var store=new Ext.data.SimpleStore({
  7.            data:data,fields: ["id","name","organization","homepage"]
  8.   });
  9.   var grid = new Ext.grid.GridPanel({
  10.     renderTo:"hello",
  11.     title:"中国Java开源产品及团队",
  12.     height:150,
  13.     width:600,
  14.     columns:[{header:"项目名称",dataIndex:"name"},
  15.            {header:"开发团队",dataIndex:"organization"},
  16.            {header:"网址",dataIndex:"homepage"}],
  17.            store:store,
  18.            autoExpandColumn:2
  19.   });
  20. });

3、定制表格显示内容

  调整column中的renderer,显示丰富多彩的内容。

4、EditorGridPanel

  可编辑的表格,用于实现在线编辑表格;在column中,通过指定一个editor,也就是Field的实例来实现表格编辑功能。

5、PropertyGrid

  属性编辑表格,只有固定的两列,一列表示属性名称,另外一列表示属性值。示例:


  1. var grid = new Ext.grid.PropertyGrid({
  2.     title: 'Properties Grid',
  3.     autoHeight: true,
  4.     width: 300,
  5.     renderTo: 'grid-ct',
  6.     source: {
  7.         "(name)": "My Object",
  8.         "Created": new Date(Date.parse('10/15/2006')),
  9.         "Available": false,
  10.         "Version": .01,
  11.         "Description": "A test object"
  12.     }
  13. });


完整代码:
  1. //图通表格示例 grid
  2. function createGrid(){
  3.     var data=[ [1, 'EasyJWeb', 'EasyJF',''],
  4.                  [2, 'jfox', 'huihoo',''],
  5.                  [3, 'jdon', 'jdon',''],
  6.                  [4, 'springside', 'springside',''] ];
  7.         
  8.         var store=new Ext.data.SimpleStore({data:data,fields:["id","name","organization","homepage"]});
  9.         var grid = new Ext.grid.GridPanel({
  10.             renderTo:"hello",
  11.             title:"中国Java开源产品及团队",
  12.             height:150,
  13.             width:600,    
  14.             columns:[{header:"ID",dataIndex:"id", sortable:true},
  15.                      {header:"项目名称",dataIndex:"name", sortable:true},
  16.                      {header:"开发团队",dataIndex:"organization",sortable:true},
  17.                      {header:"网址",
  18.                          dataIndex:"homepage",
  19.                          sortable:true,
  20.                          renderer:function(v){
  21.                              return v.link(v)
  22.                              //return ""+v+"";
  23.                          }
  24.                      }
  25.                     ],
  26.             store:store,
  27.             autoExpandColumn:2
  28.         });
  29. }

  30. //可编辑表格EditorGrid
  31. function createEditorGrid(){
  32.     var data=[ [1, 'EasyJWeb', 'EasyJF','',new Date()],
  33.                  [2, 'jfox', 'huihoo','',new Date()],
  34.                  [3, 'jdon', 'jdon','',new Date()],
  35.                  [4, 'springside', 'springside','',new Date()]
  36.              ];
  37.         
  38.         var store=new Ext.data.SimpleStore({data:data,fields:["id","name","organization","homepage","vdate"]});
  39.         var grid = new Ext.grid.EditorGridPanel({
  40.             renderTo:"hello",
  41.             title:"中国Java开源产品及团队",
  42.             height:150,
  43.             width:600,    
  44.             columns:[{header:"ID",dataIndex:"id", sortable:true},
  45.                      {header:"项目名称",dataIndex:"name", sortable:true},
  46.                      {header:"开发团队",dataIndex:"organization",sortable:true,editor: new Ext.form.TextField()},
  47.                      {header:"网址",
  48.                          dataIndex:"homepage",
  49.                          sortable:true,
  50.                          editor: new Ext.form.TextField(), //表格字段可编辑
  51.                          renderer:function(v){
  52.                              return v.link(v)
  53.                              //return ""+v+"";
  54.                          }
  55.                      },
  56.                      {header:"日期",dataIndex:"vdate",sortable:true,editor: new Ext.form.DateField(),
  57.                          renderer:function(v){
  58.                          //Ext对日期类型做了扩展,用format()
  59.                          return v.format("Y-m-d");
  60.                          }
  61.                      }
  62.                     ],
  63.             store:store,
  64.             autoExpandColumn:2
  65.         });
  66. }

  67. //属性编辑表格
  68. function createPropertyGrid(){
  69.         var grid = new Ext.grid.PropertyGrid({
  70.             renderTo:"hello",
  71.             title:"中国Java开源产品及团队",
  72.             //source这个名称不能改
  73.             source:{
  74.                 name:"abc",
  75.                 ***:"男",
  76.                 age:40,
  77.                 bornDate: new Date()
  78.             }
  79.         });
  80.         new Ext.Viewport({layout:"fit", items:grid});
  81. }

  82. Ext.onReady(function(){    
  83.         //createGrid();
  84.     //createEditorGrid();
  85.     createPropertyGrid();
  86.      });

sdfsf
阅读(1274) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~