extjs基础篇.docx

上传人:b****8 文档编号:30017252 上传时间:2023-08-04 格式:DOCX 页数:47 大小:239.88KB
下载 相关 举报
extjs基础篇.docx_第1页
第1页 / 共47页
extjs基础篇.docx_第2页
第2页 / 共47页
extjs基础篇.docx_第3页
第3页 / 共47页
extjs基础篇.docx_第4页
第4页 / 共47页
extjs基础篇.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

extjs基础篇.docx

《extjs基础篇.docx》由会员分享,可在线阅读,更多相关《extjs基础篇.docx(47页珍藏版)》请在冰豆网上搜索。

extjs基础篇.docx

extjs基础篇

【原】基础篇:

第一篇,本节主要向大家介绍Ext的最基础的话题

ExtJS是一个Ajax框架,是一个用javascript写的,用于在客户端创建丰富多彩的web应用程序界面。

ExtJS可以用来开发RIA也即富客户端的AJAX应用ExtJS是一个用javascript写的,主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架。

因此,可以把ExtJS用在.Net、Java、Php等各种开发语言开发的应用中。

  ExtJs最开始基于YUI技术,由开发人员JackSlocum开发,通过参考JavaSwing等机制来组织可视化组件,无论从UI界面上CSS样式的应用,到数据解析上的异常处理,都可算是一款不可多得的JavaScript客户端技术的精品。

朋友问我,Ext怎么学习,我记得自己学的时候纯纯因为它的简单和视觉效果特别好,因为喜欢了才有努力的坚持不懈的激情.有朋友说能否写点简单的示例方便入门,我是觉得自己写的都是很浅陋东西,实在不知道怎么简单了,昨天晚上想了许久,觉得自己还是无比的粗浅,但依然有人说看不懂,我想可能是言语没有说清楚,或者你在等到天上掉馅饼吧.因为,我觉得开始学习就是不断的模仿,只要知道它的大致概念,在自己的项目中不断的接触,一天一天就会成长起来,建议最好根据自己的学习进度写个小网站,将所学的知识融会贯通一下,就像我写了好几个Ext的网站,虽然暂时都没有发布出去,但自己经常看看也是对自己的工作的激励吧.接下来一段日子,尽量写一些Ext2.2所有的对象的最简单的用法.如果能够坚持,以后会写一个对应的提高系列.

下面就开始Ext之旅吧

Ext是什么?

答曰:

Ext是一个用jscript(javascript)所写的一个ajax框架(我想大家都知道什么是ajax了吧,假想你已经知道,那我就不说了).而javascript也是更知道它的概念了,就更不用说了吧,好,那就也不说了.什么是Ext呢,结合javascript和ajax,我想你闭眼猜都能够猜出它的功能了吧.那就用自己的语言说下什么是Ext吧,呵呵,思考真的很重要的.学习的重要环节就是要不断的自己总结,总结就来自自己的思考.

Ext有多好呢?

答曰:

仁者见仁,官方应用示例自己好好看看吧,它的绚丽多姿是无法用语言描述的,你可能会很惊叹,但我还要告诉你,这个官方应用示例并没有把Ext的所有的功能都罗列出来,仅仅是一部分,有更多的有太多的等你去发现,星哥说了:

太阳已经落山了,时间不等人滴.

Ext难吗?

答曰:

太多的人问这个问题,就像我开始学习java一样,我问了好多好多人,都说难,让我学习的信心到最后都剩的没有一点儿了,于是学了当时身边谁也不懂的.呵呵.如果有人问我这个问题,我告诉你,真的很简单,不是说我会了才这么说,其实,我想说的是:

大家玩游戏基本上都是无师自通的吧,现在明白了吧,如果你有玩游戏的那份精神和斗志,靠,天下事难难难者亦易易易也.

在哪里下载Ext呢?

答曰:

好,你能够这么问,看来我做说客还是可以的(信心指数又增加了),因为我是从2.0版本,2.1版本,到现在的2.2版本,我真的说不出来他们到底有何具体的差别,但明显的看见它明显壮大了,不仅仅是体积,更是它的力量.下载地址官方的版本,有各个版本的,我建议学习最新的吧.

Ext有核心吗?

答曰:

看来只有我才能够问这个问题呀,当年比干无心而死,看来框架也是一样的,没有核心怎么可以呢.我想在javascript中大家也都知道什么是类了吧,简单的说就是一个函数就是一个类,类里面还可以有很多的类,可以无限嵌套.而Ext就是有很多的类库组成,也就是有很多的函数组成,只是现在天上飞的水里游的都成了对象了,所以很多技术也都用对象的语言来描述.Ext就是主要有哪些类库组成呢?

有人说肯定有API层,是的,有的,有些人总是喜欢称底层是API(API是什么意思,全称ApplicationProgrammingInterface应用编程接口),喜欢就喜欢吧,我管不着.但Ext说了,要改变这样的称呼,于是Ext称之为Core,为什么呢?

因为Ext的底层在Core这个文件夹里面.core是什么意思呢?

core[kC:

]n.果核,中心,核心,我觉得称底层为Core确实不错,而且大写的CORE还有一个意思:

CORE=CongressofRacialEquality争取种族平等大会.感觉Ext的作者JackSlocum是具有很浓烈的浪漫主义情怀的追求完美的一个程序员.说到Core了:

core对Ext的DoM操作,事件处理以及所有的直接在页面上可以展示的和不可以展示的组件等提供了基础的功能.刚刚提到可显示的控件也叫组件,我们在程序中可以直接通过这些控件来实现非常友好,并且交互性也很好的应用.特别一提的是在那些不可见的组件中,有一个utils类,该类提供了很多的很实用的功能,可以方便实现对接收和发送的数据进行各种操作,实在是Ext框架不可或缺的一部分.

如何介绍Ext的组件呢?

答曰:

这个问题我确实想了很长时间,因为像很多软件的帮助教程一样,它们总是把该软件的所有功能都罗列出来,然后再逐个详解,甚至很多功能可能你都从来都不需要,但你并不知道自己是否需要,就像最近在学习flash,总感到自己有茫然不知所措的感觉,学习的态度都会转变.但,也不能够说人家的帮助教程不好呀,毕竟是追求完整性和可用性方面,每个人的见解并不一样.好吧,我下定决心了.先简单把组件说下,然后对这些组件再详细解说加示例,而且每个示例都追求可用和简单,将来再写一个深入的就能够达到完整性,倒不是说一定要追求完整,而是,如果你仅仅写了入门,却没有提高的版本,感觉自己并没有把事情做好做完整,毕竟人人都希望有始有终呀.毕竟自己还想早点介绍点关于Flex的故事呢,唉,总是没有时间.

Ext的组件有哪些呢?

答曰:

Everycomponenthasaspecificxtype,whichisitsExt-specifictypename,alongwithmethodsforcheckingthextypelikegetXTypeandisXType.下面就是这些可以使用了控件的列表了,我直接从它的帮助文档复制过来,并同时加上了它的英文原文,因为每次看到这段我总是能够想起什么,呵呵:

Ext组件主要包括一些常用组件,如表单组件,数据组件,导航组件,相信大家看名称就知道什么意思了.

xtypeClass

基本组件---------------------------------------

boxExt.BoxComponent

buttonExt.Button

colorpaletteExt.ColorPalette

componentExt.Component

containerExt.Container

cycleExt.CycleButton

dataviewExt.DataView

datepickerExt.DatePicker

editorExt.Editor

editorgridExt.grid.EditorGridPanel

gridExt.grid.GridPanel

pagingExt.PagingToolbar

panelExt.Panel

progressExt.ProgressBar

propertygridExt.grid.PropertyGrid

sliderExt.Slider

splitbuttonExt.SplitButton

statusbarExt.StatusBar

tabpanelExt.TabPanel

treepanelExt.tree.TreePanel

viewportExt.Viewport

windowExt.Window

导航组件---------------------------------------

toolbarExt.Toolbar

tbbuttonExt.Toolbar.Button

tbfillExt.Toolbar.Fill

tbitemExt.Toolbar.Item

tbseparatorExt.Toolbar.Separator

tbspacerExt.Toolbar.Spacer

tbsplitExt.Toolbar.SplitButton

tbtextExt.Toolbar.TextItem

窗体组件---------------------------------------

formExt.FormPanel

checkboxExt.form.Checkbox

comboExt.form.ComboBox

datefieldExt.form.DateField

fieldExt.form.Field

fieldsetExt.form.FieldSet

hiddenExt.form.Hidden

htmleditorExt.form.HtmlEditor

labelExt.form.Label

numberfieldExt.form.NumberField

radioExt.form.Radio

textareaExt.form.TextArea

textfieldExt.form.TextField

timefieldExt.form.TimeField

triggerExt.form.TriggerField

Ext的每个组件都是有一个指定的Xtype属性值,通过该值就可以得到该组件的类型,同时也可以根据该组件来定义一个组件例如:

{xtype:

"button",id:

"btnEnter",text:

"确定"}//这就是定义了一个按钮的组件.

{xtype:

"field",id:

"txtName"}//这就是定义了一个输入框的组件.

{xtype:

"field",id:

"txtPwd",inputType:

"password"}//这就是定义了一个密码框的组件.

当然你可以不用xtype比如:

varbtnEnter=newExt.Button({id:

"btnEnter",text:

"确定"});//这就是定义了一个按钮的组件.

vartxtName=newExt.form.Textfield({id:

"txtName"});//这就是定义了一个输入框的组件.

vartxtPwd=newExt.form.Textfield({id:

"txtPwd",inputType:

"password"});//这就是定义了一个密码框的组件.

是不是很简单,在下面会解说具体的示例,包括它的基本的语法结构,同时,你需要明确,这和你在javascript里面的用法不会有不同的地方,只是有些方法Ext已经给我们封装好了,我们只要有拿来主义的精神就可以.特别一说的是:

Ext的一些很实用的类都是全局的,无须new了,直接用就可以.

在下节会介绍一些Ext的很好的很实用的也很简单就能够使用的Util类.

【原】基础篇:

第二篇,精美的Ext式样的消息框.

精美的消息框截图了

感觉就像写书一样,好难,不过我有玩游戏的精神,难亦易也.

如果你看到了上文,那么我想你手上现在应该有Ext2.2的文件了吧.

这里再说一次,所有的程序除非有说明,则全部是以2008c#.net为前提,虽然Ext不在乎你使用什么语言,但我只会.net.

好,首先建立一个新的网站吧,然后把你下载的Ext2.2文件复制到网站的任何一个目录里面,在页面设置正确的路径即可.如下图所示:

需要说明一点,以后所有的程序都不再罗列整个页面,只写出之间的语句

DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:

//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

//www.w3.org/1999/xhtml">

无标题页

//下面是整个Ext框架所必备的文件,除了中文映射老外不需要外

//样式文件

//中文映射

<%--这是一个的页面头部分.在里面输入正确访问Ext的路径.顺序更要注意哦,而且绝对不可以颠倒.

有了上面的正确的引用后,我们就要开始实战演练了.

好吧,我们也是从hello世界开始吧!

--%>

<%--既然Ext是基于javascript的,所以我们要把Ext的东东包裹在javascript里面--%>

//定义一个函数,在里面定义一个弹出按钮,当网页上出现弹出按钮后,点击就会出现hello世界了.

functionready()

{

//下面openMs就是出发事件后所执行的函数

varopenMsg=function()

{

//alert("good");比较下ext的弹出消息框是多么多么的令人狂喜

Ext.Msg.alert("提示消息,可以自定义","hello世界-hello世界-hello世界-hello世界");

};

//定义Ext的按钮

var弹出按钮=newExt.Button

({

id:

"btnOpen",//定义按钮的ID

text:

"弹出按钮",//定义按钮的标题

handler:

openMsg,//定义按钮出发的事件,handler后面直接写函数的名称openMsg

//也可以写成下面这样,本质是一样的,效果也是一样的

//handler:

function(){Ext.Msg.alert("提示消息,可以自定义","hello世界-hello世界-hello世界-hello世界");},

renderTo:

document.body//将弹出按钮渲染到窗体上

});

}

Ext.onReady(ready);//里面的参数就是上面定义的函数

//onReady是使用Ext的入口,只有在上面所说的Ext框架全部加载完成后,才会执行Ext.onReady里面所包含的函数,就是说具体执行什么函数,由Ext的onReady方法指定.

//当然onReady这个Ext方法总共有三个参数,为了力求简单,这里先使用一个参数,在提高篇里面则会详细讲解.

上面是一个完整的网页,路径正确后,就可以直接在页面显示出来.

精美的消息框截图了

另外,提一句,Ext的所有消息框都封装在Ext.Msg类里面.

【原】基础篇:

第三篇,常用的一些Ext方法

在开始编写每个Ext的组件用法之前,先对自己在工作中常用的一些Ext方法总结出来.只罗列一些经常用到的,偶尔也会用到的仅仅说明下.Ext框架把一些我们平时在工作经常遇到的情况封装成了方法,有兴趣的朋友读读它的源代码,会发现里面封装的语句和我们平时写的没有什么区别.提一句,它的源代码读起来真的是一种享受,虽然有很多地方我还看不懂,但,我觉得它的源代码确实是学习javascript的最好的教程.ext-all-debug.js和ext-core-debug.js这两个文件是调试文件,非常清晰,假如我有2个月的时间休假,我是愿意把时间全部花在上面的.

第一想说的方法想来想去,觉得还是再说一次Ext类的onReady()方法吧,它的作用就是指定当Ext类的全部框架全部加载完成后执行什么函数.具体执行什么函数就是它的参数.

第一:

Ext.getCmp("对象ID") :

该方法只有一个参数,就是组件的ID

说明:

在执行下面的语句后,点击确定会弹出定义的Ext按钮的一些属性值,同时将原来的值由"确定"更改为"取消"

 

functionready()

{

//这个函数的主要作用有两个:

//一个获取定义的buttonName按钮。

有消息弹出结果

//另一个就是将buttonName按钮值由"确定"更改为"取消"

varsetText=function()

{

//通过getCmp方法获取指定参数的对象,参数的值是某个已经在页面中初始化的Ext对象的ID

//getCmp()方法只有一个参数,就是组件的ID

varbtn=Ext.getCmp("buttomID");

//获取按钮ID

varid=btn.id;

//获取按钮文本

vartext=btn.text;

//获取按钮类型

vartype=btn.type;

varresult="执行结果是:

ID="+id+"text="+text+"type="+type;

Ext.Msg.alert("提示消息",result);

//setText是将按钮的文本重新设置为新的文本“取消”

Ext.getCmp("buttomID").setText("取消");

};

//定义一个按钮出发事件后执行函数setText

varbuttonName=newExt.Button

({

id:

"buttomID",

text:

"确定",

renderTo:

document.body,

handler:

setText

});

}

Ext.onReady(ready);

//第二:

Ext.getBody();//该方法等同于document.body呵呵不用说了吧

//以上是我经常使用的2个方法,

其他还有很多,我都不喜欢用,像:

Ext.get("一个参数");Ext.getDom("一个参数");Ext.getDoc("不带参数");

就不一一介绍了

【原】基础篇:

第四篇,Ext中有两个很重要的方法,一个是decode;一个是encode.

在述说这个例子之前,我假想你已经知道什么是Json数据了,那么在这里在温习一下吧:

JSON(JavaScriptObjectNotation)是一种数据交换格式,采用完全独立于语言的文本格式;

JSON建构于两种结构:

“名称/值”对的集合和值的有序列表

下面详细说明下:

“名称/值”对的集合(Acollectionofname/valuepairs)。

不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hashtable),有键列表(keyedlist),或者关联数组(associativearray)。

值的有序列表(Anorderedlistofvalues)。

在大部分语言中,它被理解为数组(array)。

JSON具有以下这些形式:

对象是一个无序的“‘名称/值’对”集合。

一个对象以“{”(左括号)开始,“}”(右括号)结束。

每个“名称”后跟一个“:

”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。

数组是值(value)的有序集合。

一个数组以“[”(左中括号)开始,“]”(右中括号)结束。

值之间使用“,”(逗号)分隔。

值(value)可以是双引号括起来的字符串(string)、数值(number)、ture、false、null、对象(object)或者数组(array)。

这些结构可以嵌套。

字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。

一个字符(character)即一个单独的字符串(characterstring)。

空白可以加入到任何符号之间

------------------------以下来自XX的最新报告

下面介绍Ext中两个很重要的方法,其实,Ext中没有多余的方法,每个方法都能够恰当好处的发挥它的作用,这里指它很重要,是因为它们太常用了,尤其是在与数据库交换数据的时候

Ext中有两个很重要的方法,一个是decode;一个是encode.顾名思义,一个是编码,一个是解码,你难道真的这么想吗?

严格的说,一个是将json字符串转换成对象;一个是将对象转换成json字符串

下面这个示例主要介绍的是Ext.decode()和Ext.encode()的用法,其中使用到了json格式的串,首先是用到了Ext.decode()方法,将json格式的串转换成对象,然后通过对象访问对象所包含的各个属性的值,通过消息框把它们显示出来;之后在用Ext.encode()将已经生成的对象转换成开始定义的json格式的串,也通过消息框把它们显示出来,加了一个函数,使得在第一个消息框弹出3秒钟后再弹出第二个消息框

用图片说明吧

//下面是将json字符串转换成对象后,通过对象访问属性生成的消息框

//下面是将上面生成的对象又转换成json字符串后生成的消息框

具体看下示例吧

<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="testDecode.aspx.cs"Inherits="Test.Example.hello.testDecode"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:

//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

//www.w3.org/1999/xhtml">

测试Ext.decode()和Ext.encode()方法

展开阅读全文

相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1