对YUI扩展的Gird组件 Part-2


Posted in Javascript onMarch 10, 2007

原文在这里 文章日期:2006-9-2

代码在这里


Sidney SheldonMaster of the GameWarner BooksBookSidney SheldonAre You Afraid of the Dark?Warner BooksBookSidney SheldonIf Tomorrow ComesWarner BooksBookSidney SheldonTell Me Your DreamsWarner VisionBookSidney SheldonBloodlineWarner BooksBookSidney SheldonThe Other Side of MeWarner BooksBookSidney SheldonA Stranger in the MirrorWarner BooksBookSidney SheldonThe Sky Is FallingWilliam Morrow & CompanyBookSidney SheldonNothing Lasts ForeverWarner BooksBookSidney SheldonThe Naked FaceWarner BooksBook
Author
Title
Manufacturer
Product Group
 Loading...

DataModel包含的类如下:

AbstractDataModel
提供事件event infrastructure等义接口interface
    '-DefaultDataModel
        定义了操控数据的API
        '-LoadableDataModel
            AJAX服务的基类
            '-XMLDataModel
                    包含以上的功能和提供XML的数据调用

看上去,这分得很详细,详细到好像过于复杂。但是在我看来,对于提升代码的可再用和扩展性,建立一个结实的DataModel是尤其重要的部分。正是基于这种方法,DataModel便能为其它的组件可再用,而不需要太多的组件--尽管它是庞大的。

如果你打开Js文件观察的话,将会发现只需几行代码便可设置XMLDataModel:

var schema = {
  tagName: 'Item',
  id: 'ASIN',
  fields: ['Author', 'Title', 'Manufacturer', 'ProductGroup']
};
this.dataModel = new YAHOO.ext.grid.XMLDataModel(schema);

实际加载的数据:

// 参数可以是url encoed或对象类型
var params = {'author': author};
//回调函数清除loading
this.dataModel.load('/blog/examples/amazon.php', params, this.clearIndicator);

表头能够对gird排序。现在进行新一番的搜索,例如输入John,数据加载后仍然按照你指定的方式排序。这是新的功能。

在一个实际项目中,我们需要一个能提供回调参数的,方便的异常处理机制。LoadableDataModel就就包含这种事件(onLoadException) 。

总的来说,一切进展顺利。有些Part1的反馈告诉,Gird在Safari和其它浏览器上能够工作^^。说真的,有些反馈真的不错! thanks!

Javascript 相关文章推荐
jQuery Div中加载其他页面的实现代码
Feb 27 Javascript
jQuery中:submit选择器用法实例
Jan 03 Javascript
JavaScript计算两个日期时间段内日期的方法
Mar 16 Javascript
浅谈js 闭包引起的内存泄露问题
Jun 22 Javascript
浅谈JavaScript字符串拼接
Jun 25 Javascript
详细解读JavaScript编程中的Promise使用
Jul 27 Javascript
简单谈谈React中的路由系统
Jul 25 Javascript
关于vue.extend和vue.component的区别浅析
Aug 16 Javascript
关于Angularjs中跨域设置白名单问题
Apr 17 Javascript
opencv 识别微信登录验证滑动块位置
Aug 07 Javascript
iview在vue-cli3如何按需加载的方法
Oct 31 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
Jul 17 Javascript
对YUI扩展的Gird组件 Part-1
Mar 10 #Javascript
学习YUI.Ext第七日-View&JSONView Part Two-一个画室网站的案例
Mar 10 #Javascript
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
Mar 10 #Javascript
学习YUI.Ext 第七天--关于View&JSONView
Mar 10 #Javascript
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
Mar 10 #Javascript
学习YUI.Ext第五日--做拖放Darg&Drop
Mar 10 #Javascript
学习YUI.Ext 第四天--对话框Dialog的使用
Mar 10 #Javascript
You might like
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
2011/07/31 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
jQuery中[attribute!=value]选择器用法实例
2014/12/31 Javascript
javascript获取网页宽高方法汇总
2015/07/19 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
js实现上传并压缩图片效果
2018/01/10 Javascript
Vue修改mint-ui默认样式的方法
2018/02/03 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
vue实现文件上传读取及下载功能
2020/11/17 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
python框架中flask知识点总结
2018/08/17 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
2019/06/19 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
计算机专业推荐信范文
2013/11/27 职场文书
美术专业个人自我评价
2014/01/18 职场文书
工作态度检讨书
2014/02/11 职场文书
一分钟演讲稿
2014/04/30 职场文书
大学生党员承诺书
2014/05/20 职场文书
跳槽求职信范文
2014/05/26 职场文书