Dojo 从 v1.0 开始引入了一个功能强大,快速,健壮的控件--Grid。

Grid 在dojo的体系结构中属于Dojox 这个包中。

这个Grid 比较灵活,可以排序,过滤,编辑,多表头,支持多种Cell 控件。

官方文档的地址:http://dojotoolkit.org/book/dojo-book-0-9/docx-documentation-under-development/grid

通过官方的示例文档,我进行了一次精彩的体验,在这里和大家分享一下我的体验心得。

 要完成一个Grid,需要下面几个步骤,每个步骤都是必不可少的。

1. 首先是导入样式表

没有样式表,就无法显示漂亮的列表出来,你看到的将是丑陋的静态文本。

css 代码
  1. < style type="text/css">
  2. @import "http://localhost/dojo/dojox/grid/_grid/tundraGrid.css";   
  3. @import "http://localhost/dojo/dijit/themes/tundra/tundra.css";   
  4. @import http://localhost/dojo/dojo/resources/dojo.css   
  5. < / style>  

 

2. 模型(Model)

Model指的是什么意思呢?

大家应该都熟悉MVC模式,MVC模式是"Model-View-Controller"的缩写,中文翻译为"模型-视图-控制器"MVC应用程序总是由这三个部分组成。

视图(View)代表用户交互界面

Model就是业务流程/状态的处理以及业务规则的制定,在grid 里面也就是其所包含的数据。

 

每个grid 都会包含数据,所以每个grid 开头就是 Model 的定义。

Model 的定义一般包含两个div 标签。

 代码
  1. <div dojoType="dojo.data.ItemFileReadStore"    
  2.                 jsId="jsonStore" url="gridData.txt">  
  3. div>  
  4. <div dojoType="dojox.grid.data.DojoData" jsId="model"    
  5.     rowsPerPage="20" store="jsonStore" query="{ namespace: '*' }">  
  6. div>  

第一个Div定义数据。

第二个Div 定义Grid 的数据适配器,将数据装换为Gird Model

3. 视图(View

View 用来定义每个数据列,一个view是多个数据列的组合。通过定义view,使Grid按照要求来显示数据。下面是一个简单的view定义。

xml 代码
  1. // a grid view is a group of columns   
  2. var view1 = {   
  3.         cells: [[   
  4.                 {name: 'Namespace', field: "namespace"},    
  5.                 {name: 'Class', width: "25em", field: "className"}   
  6.           ],   
  7.           [   
  8.                 {name: 'Summary', colSpan:"2", field: "summary"}   
  9.           ]   
  10.         ]   
  11. };   
  12.   

 

4. Structure

Structure 是view的集合,也就是说可以将多个view组合成一个view。

Structure 会被Grid用到,而view不会被Grid直接用到,而是被包装成一个Structure来使用。

下面使一个Structure的例子:

js 代码
  1. var layout = [ view1 ];  

5. Grid 控件(Widget)

Widget 就是Grid控件,通过定义Grid控件,我们就能将Grid放置到我们的页面上面了。通过Grid 将上面定义的Structure model组装起来,从而按照我们定义的样子(Structure),载入我们需要的数据(model),显示出一个Gird列表。

 

xml 代码
  1. <div id="grid" dojoType="dojox.Grid" model="model" structure="layout">div>  

 

以上使开发一个Gird必要的五个步骤,已经介绍完了,下面总结一下他们的关系。

可以看到上面几个部分的依赖关系:

附件中包含了一个完整的例子。

附件中包含了Grid的运行的样子,非常的Cool。

图片

  • E9fc6b55-1846-487f-8eab-5934183ec17c-thumb
  • 描述: dojo grid 的组成
  • 大小: 15.2 KB
  • 1c280747-3e97-4c6a-9c9f-98a0ba035124-thumb
  • 描述: Dojo Grid Sample Screen Dump
  • 大小: 42.6 KB
评论
cscs31 2008-05-15
分页需要自己写,使用xhr方法,获取数据后,调用setModel即可
zhdi0 2008-04-15
例子的显示页面怎么是空白呢?
lizh123456789 2008-02-26
这个怎么实现,从action里取数据并却是刷新的,分页也要是无刷新的
jelly 2008-02-22
你说的功能都可以实现。具体方法需要查看DOJO 的文档,不是三言两语能够说清的。www.dojotoolkit.com 有详细文档,你可以先参考以下,以后有时间,我再写个教程给大家。
advancegongyu 2008-01-10
楼主如何添加单元行的单击事件啊?
还有如何隐藏一个列啊?
如何动态改变行数啊?
有没有分页器啊?
谢谢
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

jelly
搜索本博客
我的相册
327ecea7-aaf1-4839-aeb1-9148d10c2e74-thumb
os-workflow2
共 2 张
存档
最新评论