原文在这里 文章日期: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};//回调函数清除loadingthis.dataModel.load("/blog/examples/amazon.php", params, this.clearIndicator);表头能够对gird排序。现在进行新一番的搜索,例如输入John,数据加载后仍然按照你指定的方式排序。这是新的功能。
在一个实际项目中,我们需要一个能提供回调参数的,方便的异常处理机制。LoadableDataModel就就包含这种事件(onLoadException) 。
总的来说,一切进展顺利。有些Part1的反馈告诉,Gird在Safari和其它浏览器上能够工作^^。说真的,有些反馈真的不错! thanks!