ExtJs20入门文档.docx

上传人:b****0 文档编号:12532159 上传时间:2023-04-20 格式:DOCX 页数:78 大小:437.33KB
下载 相关 举报
ExtJs20入门文档.docx_第1页
第1页 / 共78页
ExtJs20入门文档.docx_第2页
第2页 / 共78页
ExtJs20入门文档.docx_第3页
第3页 / 共78页
ExtJs20入门文档.docx_第4页
第4页 / 共78页
ExtJs20入门文档.docx_第5页
第5页 / 共78页
点击查看更多>>
下载资源
资源描述

ExtJs20入门文档.docx

《ExtJs20入门文档.docx》由会员分享,可在线阅读,更多相关《ExtJs20入门文档.docx(78页珍藏版)》请在冰豆网上搜索。

ExtJs20入门文档.docx

ExtJs20入门文档

ExtJs2.0学习系列

(1)--Ext.MessageBox

1.Ext.MessageBox.alert()方法

     有四个参数,为简单起见,主要介绍前面三个参数:

      alert(title,msg,function(){})

Ext.MessageBox.alert();

      其中title,msg为必选参数,function为可选参数,在关闭弹出窗口后触发。

Ext.MessageBox.alert("title","msg");

 Ext.MessageBox.alert("title","msg",function(){alert("关闭对话框后弹出!

")});

2.Ext.MessageBox.confirm()方法

  基本上同alert()方法一模一样。

  注意这点:

Ext.MessageBox.confirm("title","msg",function(e){alert(e);});

这个参数e是什么?

它是你点击的弹出框的按钮的值,三种值:

yes,no,cancel.Alert()方法也是如此,不过只有两种值:

ok,cancel.

3.Ext.MessageBox.prompt()方法

  有六个参数,比前面alert方法多一个返回值和是否多行。

Ext.MessageBox.prompt("title","msg");

Ext.MessageBox.prompt("title","msg",function(e,text){alert(e+"-"+text);});

//输入"qianxudetianxia",点击ok按钮,弹出ok-qianxudetianxia

Ext.MessageBox.prompt("title","msg",function(e,text){alert(e+"-"+text);},this,true);

//true为多行,this表示作用域

4.Ext.MessageBox.show()方法

  功能很强大,采用config配置形式,比前面的方法使用更方便。

  参数很多,在此列举最常用的配置参数:

1.animEl:

对话框弹出和关闭时的动画效果,比如设置为“id1”,则从id1处弹出并产生动画,收缩则相反

2.buttons:

弹出框按钮的设置,主要有以下几种:

Ext.Msg.OK,

                                        Ext.Msg.OKCANCEL,

                                        Ext.Msg.CAMCEL,

                                        Ext.Msg.YESNO,

                                        Ext.Msg.YESNOCANCEL

  你也可以自定义按钮上面的字:

{"ok","我本来是ok的"}。

   若设为false,则不显示任何按钮.

3.closable:

如果为false,则不显示右上角的小叉叉,默认为true。

4.msg:

"消息的内容"

5.title:

"标题"

6.fn:

关闭弹出框后执行的函数

7.icon:

弹出框内容前面的图标,取值为Ext.MessageBox.INFO,

                                    Ext.MessageBox.ERROR,

            Ext.MessageBox.WARNING,

            Ext.MessageBox.QUESTION

8.width:

弹出框的宽度,不带单位

9.prompt:

设为true,则弹出框带有输入框

10.multiline:

设为true,则弹出框带有多行输入框

11.progress:

设为true,显示进度条,(但是是死的)

12.progressText:

显示在进度条上的字

13.wait:

设为true,动态显示progress

14.waitConfig:

配置参数,以控制显示progress

example:

Ext.MessageBox.show({

    title:

"标题",

    msg:

"内容的消息",

    buttons:

{"ok":

"我不再显示OK了"},

    fn:

function(e){alert(e);},

    animEl:

"test1",

     width:

500,

    icon:

Ext.MessageBox.INFO,

   你在

    progress:

true,

    wait:

true,

    progressText:

"进度条"

   // prompt:

true

   // multiline:

true

});

4.Ext.MessageBox.show()中的进度条的使用

   首先必须知道例外两个方法 Ext.MessageBox.hide()和Ext.MessageBox.updateProgress(value,"ProgressText","msg")(三个参数,看名字就知道意思),

  注意value为0-1之间的数,表示进度条的进度.

  第一种:

(通过进度的大小控制进度,满进度为1)

Ext.get("btn1").on(

          "click",

          function(){

             Ext.MessageBox.show({

                 title:

"df",

                 msg:

"dfd",

                 progress:

true,

                 width:

300,

                 closable:

true

             });

             var f=function(v){

               return function(){

                 if(v==12)

                 {

                   Ext.MessageBox.hide();

                   //alert("加载完成!

");

                 }

                 else

                 {

                   var i=v/11; 

                   Ext.MessageBox.updateProgress(i,Math.round(100*i)+"% completed",i);

                 }

               }

             }

             for(var i=1;i<13;i++)

             {

               setTimeout(f(i),i*500);//从点击时就开始计时,所以500*i表示每500ms就执行一次

             }

          }

   );

  第二种:

(通过固定时间控制进度加载)

Ext.get("btn1").on(

          "click",

          function(){

             Ext.MessageBox.show({

                 title:

"时间进度条",

                 msg:

"5s后关闭进度框",

                 progress:

true,

                 width:

300,

                 wait:

true,

                 waitConfig:

{interval:

600},//0.6s进度条自动加载一定长度

                 closable:

true

             });

             setTimeout(function(){Ext.MessageBox.hide()},5000);//5后执行关闭窗口函数

          }

最后关于那个waitConfig的参数,在此说明下:

1.interval:

进度的频率

2.duration:

执行进度的持续时间,超过这个时间后,interval失效,不再产生进度效果,但进度狂也不会消失。

3.fn:

duration的时间到后执行的函数

所以,上面的通过时间控制进度另外一种写法为:

    Ext.get("btn1").on(

          "click",

          function(){

             Ext.MessageBox.show({

                 title:

"时间进度条",

                 msg:

"5s后关闭进度框",

                 progress:

true,

                 width:

300,

                 wait:

true,

                 waitConfig:

{

                              interval:

600,

                              duration:

5000,

                              fn:

function(){

                                Ext.MessageBox.hide();//让进度条消失

                              }},

                 closable:

true

             });

             //setTimeout(function(){Ext.MessageBox.hide()},5000);

          }

   );

效果一样。

MessageBox类暂且就说这么多!

一起期待下一章...

 

ExtJs2.0学习系列

(2)--Ext.Panel

上一篇文章ExtJs2.0学习系列

(1)--Ext.MessageBox,受到了大家的褒贬不一,还是有的朋友提出好的建议,在此表示感谢!

今天介绍extjs中的Panel组件。

//html代码

    

//js代码

var p = new Ext.Panel({

        title:

 'My Panel',//标题

        collapsible:

true,//右上角上的那个收缩按钮,设为false则不显示

        renderTo:

 'container',//这个panel显示在html中id为container的层中

        width:

400,

        height:

200,

        html:

 "

我是内容,我包含的html可以被执行!

"//panel主体中的内容,可以执行html代码

    });

因为panel组件的子类组件包括TabPanel,GridPanel,FormPanel,TreePanel组件,所以非常有必要介绍Panel组件的配置参数和相关的属性、方法。

//配置参数(只列举部分常用参数)

1.autoLoad:

有效的url字符串,把那个url中的body中的数据加载显示,但是可能没有样式和js控制,只是html数据

2.autoScroll:

设为true则内容溢出的时候产生滚动条,默认为false

3.autoShow:

设为true显示设为"x-hidden"的元素,很有必要,默认为false

4.bbar:

底部条,显示在主体内,//代码:

bbar:

[{text:

'底部工具栏bottomToolbar'}],

5.tbar:

顶部条,显示在主体内,//代码:

tbar:

[{text:

'顶部工具栏topToolbar'}],

6.buttons:

按钮集合,自动添加到footer中(footer参数,显示在主体外)//代码:

buttons:

[{text:

"按钮位于footer"}]

7.buttonAlign:

footer中按钮的位置,枚举值为:

"left","right","center",默认为right

8.collapsible:

设为true,显示右上角的收缩按钮,默认为false

9.draggable:

true则可拖动,但需要你提供操作过程,默认为false

10.html:

主体的内容

11.id:

id值,通过id可以找到这个组件,建议一般加上这个id值

12.width:

宽度

13.height:

高度

13.title:

标题

14.titleCollapse:

设为true,则点击标题栏的任何地方都能收缩,默认为false.

15.applyTo:

(id)呈现在哪个html元素里面

16.contentEl:

(id)呈现哪个html元素里面,把el内的内容呈现

17.renderTo:

(id)呈现在哪个html元素里面

//关于这三个参数的区别(个人认为:

applyTo和RenderTo强调to到html元素中,contentEl则是html元素到ext组件中去):

1.可拖动的panel实例

下面我们做个可拖动panel例子来熟悉下panel这个最基本的组件.

//html代码

..无..

//下面创建一个允许拖动的panel,但是拖动的结果不能保存

var p=new Ext.Panel({

    title:

 'Drag me',

    x:

 100,

    y:

 100,

    renderTo:

 Ext.getBody(),//x,y,renderTo:

Ext.getBody()初始化panel的位置

    floating:

 true,//true

    frame:

 true,//圆角边框

    width:

 400,

    height:

 200,

    draggable:

true

}).show();//在这里也可以不show()

但是还不能拖到其他的地方,我们需要改写draggable:

draggable:

 {

        insertProxy:

 false,//拖动时不虚线显示原始位置

        onDrag :

 function(e){

            var pel = this.proxy.getEl();

            this.x = pel.getLeft(true);

            this.y = pel.getTop(true);//获取拖动时panel的坐标

        },

        endDrag :

 function(e){

            this.panel.setPosition(this.x, this.y);//移动到最终位置

        }

    }

实现了可保存的拖动,如图:

拖动的时候阴影还在原位置,我们再在draggable中的onDrag事件中添加代码:

var s = this.panel.getEl().shadow;

            if (s) {

                s.realign(this.x, this.y, pel.getWidth(), pel.getHeight());

            }

//shadow的realign方法的四个参数,改变shadow的位置大小属性

最后这个可拖动的panel的代码为:

var p=new Ext.Panel({

    title:

 'Drag me',

    x:

 100,

    y:

 100,

    renderTo:

 Ext.getBody(),

    floating:

 true,

    frame:

 true,

    width:

 400,

    height:

 200,

    draggable:

 {

        insertProxy:

 false,

        onDrag :

 function(e){

            var pel = this.proxy.getEl();

            this.x = pel.getLeft(true);

            this.y = pel.getTop(true);

            var s = this.panel.getEl().shadow;

            if (s) {

                s.realign(this.x, this.y, pel.getWidth(), pel.getHeight());

            }

        },

        endDrag :

 function(e){

            this.panel.setPosition(this.x, this.y);

        }

    }

})

//效果图片我就不贴出来了

2.带顶部,底部,脚部工具栏的panel

var p=new Ext.Panel({

   id:

"panel1",

        title:

"标题",

        collapsible:

true,

        renderTo:

"container",

        closable:

true,

        width:

400,

        height:

300,

        tbar:

[{text:

"按钮1"},{text:

"按钮2"}], //顶部工具栏

        bbar:

[{text:

"按钮1"},{text:

"按钮2"}],  //底部工具栏

        html:

"内容",

        buttons:

[{text:

"按钮1"},{text:

"按钮2"}] //footer部工具栏

   });

我们已经在各种工具栏上添加了按钮,但是却没有激发事件,下面我们来添加按钮事件代码:

tbar:

[{text:

"按钮1",handler:

function(){Ext.MessageBox.alert("我是按钮1","我是通过按钮1激发出来的弹出框!

")}},{text:

"按钮2"}],

//改写tbar,添加handler句柄,点击顶部工具栏上按钮1,弹出提示框,效果图大家想象下,就不贴出来了

当然,一般情况下,我们只要一个工具栏,这里只是为了演示!

3.panel工具栏

//添加下面的代码到panel配置参数中

tools:

[{id:

"save"},{id:

"help"},{id:

"up"},{id:

"close",handler:

function(){Ext.MessageBox.alert("工具栏按钮","工具栏上的关闭按钮时间被激发了")}}],

//id控制按钮,handler控制相应的事件

//id的枚举值为:

toggle (collapsable为true时的默认值)

close

minimize

maximize

restore

gear

pin

unpin

right

left

up

down

refresh

minus

plus

help

search

save

print

关于panel今天就讨论到这里,欢迎批评!

一起期待下一片文章.

 

ExtJs2.0学习系列(3)--Ext.Window

前面介绍了panel组件--ExtJs2.0学习系列

(2)--Ext.Panel,今天将介绍window组件,它继承自panel。

先介绍个最简单例子

//html代码

        

//js代码

var w=new Ext.Window({

           contentEl:

"win",//主体显示的html元素,也可以写为el:

"win"

           width:

300,

           height:

200,

           title:

"标题" 

        });

        w.show();

参数介绍:

因为前面已经介绍了panel组件,下面只介绍window组件的几个其他特别的配置参数

//几个前面没有介绍的window自己的配置参数

1.closeAction:

枚举值为:

close(默认值),当点击关闭后,关闭window窗口

                       hide,关闭后,只是hidden窗口

2.closable:

true在右上角显示小叉叉的关闭按钮,默认为true

3.constrain:

true则强制此window控制在viewport,默认为false

4.modal:

true为模式窗口,后面的内容都不能操作,默认为false

5.plain:

//true则主体背景透明,false则主体有小差别的背景色,默认为false

//需要显示下show()方法,默认的窗口是可拖动的,可关闭的,可拖动大小的

w.show()

实例介绍:

1.嵌套了tabpanel的window

var w=new Ext.Window({

           contentEl:

"win",

           width:

300,

           height:

200,

           items:

new Ext.TabPanel({

                      activeTab:

0,//当前标签为第1个tab(从0开始索引)

                      border:

false,

                      items:

[{title:

"tab1",html:

"tab1在windows窗口中"},{title:

"tab2",html:

"tab2在windows窗口中"}]//TabPanel中的标签页,以后再深入讨论

                 }),

           plain:

true,//true则主体背景透明,false则主体有小差别的背景色,默认为false

           title:

"标题"

    

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

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

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