EXTJS是一个兼容AJAX的前台WEB UI的框架,在普通的HTML文件的 BODY 元素中无须写任何HTML代码,就能产生相应的表格等元素。
首先是为每一个页面定义一个类,再以EXTJS的规范格式增加所需的元素,可以使用所见所得的工具:extbuilder 来操作,这个类将以XXXXX.js的文件名保存,最后在相应的HTML页面中引入相关的JS和CSS文件:
1 |
<script type=" text/javascript " src="/EXTJS/ext-2.2/adapter/ext/ext-base.js "></script>
|
2 |
<script type=" text/javascript " src="/EXTJS/ext-2.2/ext-all-debug.js "></script>
|
3 |
<link rel=" stylesheet " type=" text/css " href=" /EXTJS/ext-2.2/resources/css/ext-all.css " />
|
4 |
<script type=" text/javascript " src= "XXXXX.js "></script>
|
并在BODY中加入下面这段JAVA SCRIPT:
01 |
<script> |
02 |
Ext.onReady( function () {
|
03 |
Ext.QuickTips.init();
|
04 |
Ext.form.Field.prototype.msgTarget='side';
|
05 |
var viewport=new Ext.Viewport( {
|
06 |
layout : 'fit',
|
07 |
border : false,
|
08 |
items : [new system.XXXXX()]
|
09 |
});
|
10 |
viewport.render();
|
11 |
});
|
12 |
</script>
|
其中XXXXX就是之前新加的JS类,则EXT引擎就会以一定的非常漂亮的样式渲染出页面来,并且以后的页面风格要改变,只须更换CSS即可,无须改动页面。
附完整的代码: PagingGridPanel.js
001 |
Ext.namespace('system');
|
002 |
system.PagingGridPanel = function(config) { |
003 |
Ext.applyIf(this, config);
|
004 |
this.initUIComponents();
|
005 |
system.PagingGridPanel.superclass.constructor.call(this);
|
006 |
this.loadData();
|
007 |
}; |
008 |
Ext.extend(system.PagingGridPanel, Ext.Panel, { |
009 |
initUIComponents : function() {
|
010 |
// BEGIN OF CODE GENERATION PARTS, DON'T DELETE CODE BELOW
|
011 |
this.store1 = new Ext.data.Store({
|
012 |
proxy : new Ext.data.MemoryProxy({
|
013 |
total : 2,
|
014 |
root : [{
|
015 |
age : 56,
|
016 |
name : "IOyFo"
|
017 |
}, {
|
018 |
age : 239,
|
019 |
name : "87tPp"
|
020 |
}]
|
021 |
}),
|
022 |
reader : new Ext.data.JsonReader({
|
023 |
root : "root",
|
024 |
total : "total",
|
025 |
id : "id"
|
026 |
}, [{
|
027 |
mapping : "name",
|
028 |
name : "name"
|
029 |
}, {
|
030 |
type : "int",
|
031 |
mapping : "age",
|
032 |
name : "age"
|
033 |
}])
|
034 |
});
|
035 |
036 |
this.gridPanel1 = new Ext.grid.GridPanel({
|
037 |
bbar : new Ext.PagingToolbar({
|
038 |
xtype : "paging",
|
039 |
emptyMsg : "No data to display",
|
040 |
displayMsg : "Displaying {0} - {1} of {2}",
|
041 |
store : this.store1
|
042 |
}),
|
043 |
selModel : new Ext.grid.RowSelectionModel({}),
|
044 |
columns : [{
|
045 |
header : "name",
|
046 |
dataIndex : "name",
|
047 |
sortable : true,
|
048 |
hidden : false
|
049 |
}, {
|
050 |
header : "age",
|
051 |
dataIndex : "age",
|
052 |
sortable : true,
|
053 |
hidden : false
|
054 |
}],
|
055 |
store : this.store1,
|
056 |
height : 200,
|
057 |
tbar : new Ext.Toolbar([{
|
058 |
handler : function(button, event) {
|
059 |
this.onButtonClick(button, event);
|
060 |
}.createDelegate(this),
|
061 |
text : "button"
|
062 |
}, {
|
063 |
handler : function(button, event) {
|
064 |
this.onButtonClick(button, event);
|
065 |
}.createDelegate(this),
|
066 |
text : "button2"
|
067 |
}])
|
068 |
});
|
069 |
070 |
Ext.apply(this, {
|
071 |
items : [this.gridPanel1]
|
072 |
});
|
073 |
// END OF CODE GENERATION PARTS, DON'T DELETE CODE ABOVE
|
074 |
},
|
075 |
loadData : function() {
|
076 |
this.store1.load();
|
077 |
},
|
078 |
onButtonClick : function(button, event) {
|
079 |
this.store1 = new Ext.data.Store({
|
080 |
proxy : new Ext.data.MemoryProxy({
|
081 |
total : 2,
|
082 |
root : [{
|
083 |
age : 56,
|
084 |
name : "88888"
|
085 |
}, {
|
086 |
age : 239,
|
087 |
name : "99999"
|
088 |
}]
|
089 |
}),
|
090 |
reader : new Ext.data.JsonReader({
|
091 |
root : "root",
|
092 |
total : "total",
|
093 |
id : "id"
|
094 |
}, [{
|
095 |
mapping : "name",
|
096 |
name : "name"
|
097 |
}, {
|
098 |
type : "int",
|
099 |
mapping : "age",
|
100 |
name : "age"
|
101 |
}])
|
102 |
});
|
103 |
this.store1.reload();
|
104 |
}
|
105 |
}); |
index.html
01 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
02 |
<html xmlns="http://www.w3.org/1999/xhtml">
|
03 |
<head>
|
04 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
05 |
<script src="http://cdn.bootcss.com/extjs/3.4.1-1/adapter/ext/ext-base.js"></script>
|
06 |
<script src="http://cdn.bootcss.com/extjs/3.4.1-1/ext-all-debug.js"></script>
|
07 |
<link href="http://cdn.bootcss.com/extjs/3.4.1-1/resources/css/ext-all.css" rel="stylesheet"/>
|
08 |
<script type="text/javascript" src="PagingGridPanel.js"></script>
|
09 |
</head>
|
10 |
<body>
|
11 |
<script>
|
12 |
Ext.onReady(function() {
|
13 |
Ext.QuickTips.init();
|
14 |
Ext.form.Field.prototype.msgTarget = 'side';
|
15 |
var viewport = new Ext.Viewport( {
|
16 |
layout : 'fit',
|
17 |
border : false,
|
18 |
items : [new system.PagingGridPanel()]
|
19 |
});
|
20 |
viewport.render();
|
21 |
});
|
22 |
</script>
|
23 |
24 |
</body>
|
25 |
</html>
|
项目截图
运行截图