因为涉及到数据格式的转换问题,我在这里用的是Newtonsoft.JSON把业务对象转换成字符串.它是个开源的工具,可在网上搜索下载并合法的使用.
我想程序员最常做的一件事儿,就是把数据从某个数据源中读取出来,放到某个载体上呈现出来.那么,首先我们就用ExtJS来从数据库(Sql server)中读两条数据感受一下.
首先,做我们最熟悉的事儿,访问数据库,读出几条记录.我们可以选择新建一个aspx页面,但是切记千万要把html元素清理干净,不要留哪怕一丁点儿
然后,回到客户端,添加ExtJS的最小集合,别忘了添加css哦,呵呵:)
到关键时刻,该写js了。我最讨厌写JS了,但是没办法哎.首先看一段简单的。呵呵,就五行代码,还有三行是大括号,我晕.这个onReady方法告诉我们可以读取页面了,已我现在理解,可以认为是pageload吧.呵呵 此处有点儿问题,onReady函数准确的说是在页面加载结束后进行的,它的执行在pageload之后,所以不能认为是pageload哦。呵呵:)
1
2
function loaddata()
3
{
4
var cm = new Ext.grid.ColumnModel([
5
{header:'ItemID',dataIndex:'ItemID',sortable:true},
6
{header:'UnitPrice',dataIndex:'UnitPrice'},
7
{header:'ItemName',dataIndex:'ItemName'},
8
{header:'CategoryID',dataIndex:'CategoryID'},
9
{header:'PicturePath',dataIndex:'PicturePath'}
10
]);
11
12
{
13
url: '../testhandler/Handler.ashx',
14
{
15
id:'ItemID',
16
fields:[
17
{name:'ItemID'},
18
{name:'UnitPrice'},
19
{name:'ItemName'},
20
{name:'CategoryID'},
21
{name:'PicturePath'}]
22
})
23
});
24
25
store.load();
26
27
{
28
el: 'grid1',
29
store: store,
30
cm: cm,
31
height:500,
32
width:800
33
});
34
35
36
grid.render();
37
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
让我们慢慢来看看,这里面究竟有什么奥妙呢?
首先定义了一个cm,它是什么呢?他就是Ext.grid.ColumnModel,Ext提供给我们玩转表格的列模型,可以定义各列排序的功能等等.
然后定义了一个store,它就象一个表,将要展示的数据就放在它的里面.根据我们输入的url去访问一个过程,返回一个字符串(注意这个字符串的格式),然后根据字符串的类型使用相应的reader把他们读出来,还可以设置键值等等其它特性.
OK,终于把数据从数据库中拿过来了。
剩下的就是把这些数据放到grid中就行了。在页面上先定义一个id=grid1的div,然后回来在js中New一个GridPanel就OK了,分别传入id值,数据源,列,及高和宽等等属性.
最后,别忘了store要load(),grid要render()噢,呵呵 让我们看看效果吧.什么?你的有问题,那么写下来吧,看看大家谁能帮忙.