EXT初探

ext最新的版本已经收费了,不过对我来说没什么影响。一直都用jq,都说ext好用,但是自己一直没有学习过,就从现在开始准备学习学习。

闲话不扯。开搞!这里我用ext2.0。

首先,需要的库文件有两个,ext-all.js和ext-base.js。以及css文件ext-all.css。images文件夹中的问题。

弹出框来测试一下:

<script type="text/javascript">

  Ext.onReady(function(){

  Ext.MessageBox.alert("Message","Hello World!");

  });

</script>

再来创建一个窗口。

Ext.onReady(function(){

var win=new Ext.Window({title:"hello",width:300,height:200,html:'<h1>Hello,我是可以拖拽的哦!</h1>'}); 

win.show();

});

哈哈,看出来了吧。这个Ext后面跟的就是那个控件的名字。

面板-Panel:

var obj={title:"hello",width:300,height:200,html:"Hello,我是面板英文名字叫Panel"};

var panel=new Ext.Panel(obj);

panel.render("hello");

这里需要一点html了,render方法,是作用到了一个叫hello的div上面。当然span,a,甚至h1标签也可以。

上面的程序一句话搞定:new Ext.Panel({renderTo:"hello",title:"hello",width:300,height:200,html:'<h1>Hello,我是面板英文名字叫Panel</h1>'});

很好很强大!~@;

嵌套面板tabPanel:

var panel=new Ext.TabPanel({
width:300,
height:200,
items:[
{
title:"面板1",
height:30,
},
{
title:"面板2",
height:30,
},
{
title:"面板3",
height:30,
}
]

});

这里要注意子面板并没有用new Panel("")方法来实现。这样做会延迟加载。如果添加上此方法来创建则在程序一开始就创建了。

事件:

方法a:

function a(){

   alert("哈哈");

}

按钮btnAlert:

<input id="btnAlert" type="button" value="Button" />

绑定:

click事件触发则调用a

 Ext.get("btnAlert").addListener("click",a);
 Ext.get("btnAlert").on("click",a);
//以上两种写法都一样
Ext.get("btnAlert").on("click",a,this,{delay:1000});
//最后一个是延时了,呵呵

看一个关闭状态的回调函数:

var win=new Ext.Window({title:"不能关闭",width:300,height:200,html:'<h1>Hello,来关我啊!</h1>'});
win.on("beforedestroy",function(obj){
alert("想关闭我,不可能的");
obj.show();
return false;
});
win.show();

这里给beforedestroy状态,添加了事件。

 

var win=new Ext.Window({

  title:"不能关闭",

  width:300,

  height:200,

  html:'<h1>Hello,easyjfopensource</h1>',

  listeners:{"beforedestroy":function(obj){

      alert("想关闭我,不可能的");

      obj.show();
      return false;
   } 
  }
  );
 win.show();

 也可以用上面这种不用on直接在创建的时候添加listeners配置即可。

 

  

posted @ 2013-02-20 20:52  q429786006  阅读(182)  评论(0编辑  收藏  举报