分类: Java
2008-03-13 13:25:08
温故而知新,学习新的技术,需要毅力去支持——陈治文
今天将详细将昨天发布的程序进行系统讲解,目的是让大家对于AJAX开发模式有一定的认识。
服务器部分:
SessionFactory.start() ;
var _rs = SessionFactory.getData("select ziduanname from shopxp_ziduan") ;
Write.writeXML(_rs) ;
SessionFactory.end() ;
讲解1:SessionFactory.start() 与SessionFactory.end() 是ASPServer的数据持久层的关键方法,它们完成了对于数据库的打开与关闭操作。
讲解2: var _rs = SessionFactory.getData("select ziduanname from shopxp_ziduan") ;通过一个特定的SQL语句来生成一个ASPServer提供的数据集对象,该数据集是断开式访问的,即在操作数据集对象时,与数据库无关。
讲解3: Write.writeXML(_rs) 这个方法可能将可以输出成XML的对象以XML形式输出,该示例中,此程序输出如下:
这个是ASPServer标准的数据集输出格式
网页部分:
讲解1:ext-base.js是ExtJs的基础程序库
讲解2:ext-all.js是ExtJs的应用程序库
讲解3:,生成表格对象的注册元素,一般情况下,注册元素都是简单的Div元素
JS部分:
Ext.BLANK_IMAGE_URL = 'js/ext/resources/images/default/s.gif';
Ext.onReady(function(){
var _grid = new Ext.grid.GridPanel({
ds: new Ext.data.Store({
url: "../app/demo.asp",
reader: new Ext.data.XmlReader({
record: "row"
}, [
{name: "saleName", mapping: "@ziduanname"}
])
}),
cm: new Ext.grid.ColumnModel([
{header: "商品名称", width: 145, dataIndex: "saleName"}
]),
renderTo:"example_grid",
width:150,
height:300
});
_grid.getStore().load();
}) ;
讲解1:我们在此程序中,只有一个_grid对象,其它都是在设置其属性,作为一个表格组件,第一个需要解决的就是数据来源问题,Ext.data.Store的作为ExtJs本地数据集操作对象为其解决这个数据问题。
Ext.data.Store的主要作用,就是把来源服务器的数据,解析成可控制、可引用的本地数据操作对象集,url,很好想象,这个是服务器输出数据的页面的URL路径。而Ext.data.XMLReader则是规范下载下来的数据用的,便于以后的识别引用。
Ext.grid.ColumnModel是用来将Ext.data.Store里的数据,呈现出来
讲解2:_grid.getStore().load(),这段代码是必不可少的,这是命令列表的数据集对象对于服务器进行一次请求
好了,示例里也就这么多内容,很简单的一个例子,不过其基本原理还是有所表现了,今天,我还做了一个小程序,是订阅了Sina的Rss服务的一个新闻列表,在这个示例,大家可以看到ExtJS更加强大的Grid功能