EXTJS入门教程及其框架搭建

摘要:
EXTJS是一个兼容AJAX的前台WEBUI框架。它不需要在普通HTML文件的BODY元素中编写任何HTML代码来生成相应的表和其他元素。

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

001Ext.namespace('system');
002system.PagingGridPanel = function(config) {
003    Ext.applyIf(this, config);
004    this.initUIComponents();
005    system.PagingGridPanel.superclass.constructor.call(this);
006    this.loadData();
007};
008Ext.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">
03<head>
04<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
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>

项目截图

项目截图

运行截图

EXTJS入门教程及其框架搭建第2张

免责声明:文章转载自《EXTJS入门教程及其框架搭建》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题2020 第九届全国生物信息学与系统生物学学术大会举行下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Input标签与图片按钮水平对齐解决方法

昨日,小编的朋友就来咨询,说他也遇到了这个问题,并且使用margin、padding等Css语法,都没有解决。   解决方法其实很简单,我们只要加上vertical-align:middle属性就可以了。   来看实例:    提示:您可以先修改部分代码再运行 页面直接摆放一个input文本框与ImageButton图片按钮,但是发现没有对齐:  复...

Android开发之AIDL的使用一--跨应用启动Service

启动其他App的服务,跨进程启动服务。 与启动本应用的Service一样,使用startService(intent)方法 不同的是intent需要携带的内容不同,需要使用intent的setComponent()方法。 setComponent()方法需要传入两个参数,第一个参数是包名,第二个参数是组件名。即,第一个参数传入要启动的其他app的包名,第二...

javascript中的后退和刷新

<input type=button value=刷新 onclick="window.location.reload()"><input type=button value=前进 onclick="window.history.go(1)"><input type=button value=后退 onclick="window...

flask 单个表单多个提交按钮 --

单个表单多个提交按钮 在某些情况下,可能需要为一个表单添加多个提交按钮。比如在创建文章的表单中添加发布按钮和存草稿的按钮。当用户提交表单时,需要在视图函数中根据按下的按钮来做出不同的处理。 下面例子中创建了一个表单,save按钮用于保存,publish表示发布,正文字段使用TextAreaField字段。 forms.py: classNewPostFor...

根据浏览器history模拟浏览器后退按钮显隐问题

场景:在APP页面开发中,有一个需求,做一个返回按钮,实现的功能和浏览器的后退按钮相同。 措施:具体思路如下:           1.开始打开页面时,浏览器的history.length为1,按钮隐藏;       2.当history.length>1时,点击按钮执行 history.go(-1);    3.后退到历史记录栈中第一帧时,按钮隐藏...

IOS键盘样式风格有关设置

一、键盘风格 UIKit框架支持8种风格键盘。 typedefenum{ UIKeyboardTypeDefault,//默认键盘:支持所有字符 UIKeyboardTypeASCIICapable,//支持ASCII的默认键盘 UIKeyboardTypeNumbersAndPunctuation,//标准电话键盘,支持+*#等符号 UIKe...