时间:2021-07-01 10:21:17 帮助过:16人阅读
原文在这里 文章日期:2006-9-2
代码在这里
Author |
Title |
Manufacturer |
Product Group |
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!