modal:true,弹出后原页面变灰不可编辑
modal:true,弹出后原页面变灰不可编辑
- events:组件的事件
Ext.onReady(function(){
//Ext.create方法相当于创建一个实例对象
Ext.create('Ext.window.Window',{
title:'我的第一个组件',
width:400, //Number型,也可以是字符串类型 width:'90%'
height:300,
layout:'fit',
renderTo:Ext.getBody() //新创建的组件 渲染到什么位置
}).show(); //需要此方法,因为默认是隐藏的
});
window组件常用属性和方法讲解:
configs:
- constrain:布尔值,true为限制窗口只能在其容器内移动,默认值为false,允许窗口在任何位置移动。(另:constrianHeader属性)
- modal:布尔值,true为设置模态窗口。默认为false
- plain:布尔值,true为窗口设置透明背景。false则为正常背景,默认为false
- x、y 设置窗口左上角坐标位置。
- onEsc:复写onEsc函数,默认情况下按Esc键会关闭窗口。
- closeAction:string值,默认值为'destroy',可以设置'hide'关闭时隐藏窗口
- autoScroll:布尔值,是否需要滚动条,默认false
Ext.onReady(function(){
//Ext.create方法相当于创建一个实例对象
Ext.create('Ext.window.Window',{
title:'我的第一个组件',
width:400, //Number型,也可以是字符串类型 width:'90%'
height:300,
layout:'fit',
constrain:true, //限制窗口不超出浏览器边界
constrainHeader:true, // 不允许该窗体标题超出浏览器边界
modal:true, //设置一个模态窗口
plain:true,
icon:'js/ExtJs/icons/used/browser_window.png', //图片路径
iconCls:'', //css样式
x:50,
y:50,
html:'我是一个div我是第二个div',
autoScroll:true,
renderTo:Ext.getBody() //新创建的组件 渲染到什么位置
}).show(); //需要此方法,因为默认是隐藏的
});
Ext.onReady(function(){
//ex001:点击一个按钮,打开一个新的窗体
//JQuery code: var btn = $('#btn'); var dombtn = btn.get(0);
var btn = Ext.get('btn'); //这个元素是经过Ext包装的一个Ext的Dom对象
alert(btn.value); //undefined
alert(btn.dom.value);
btn.on('click',function(){
if(!Ext.getCmp('mywin')){
Ext.create('Ext.window.Window',{
id:'mywin', //如果给组件加了一个id,那么这个组件就会被Ext所管理
title:'新窗体',
height:200,
width:300,
renderTo:Ext.getBody()
// modal:true
}).show();}
});
});
第二种实现:
var win = Ext.create('Ext.window.Window',{
id:'mywin', //如果给组件加了一个id,那么这个组件就会被Ext所管理
title:'新窗体',
height:200,
width:300,
renderTo:Ext.getBody(),
closeAction:'hide' //closeAction默认是destroy,销毁
});
Ext.get('btn').on('click',function(){
win.show();
});
添加子组件:
Ext.onReady(function(){
//在组件中添加子组件,并进行一系列针对于组件的操作
var win = new Ext.window.Window({
title:'添加子组件',
width:400,
height:300,
renderTo:Ext.getBody(),
draggable:false, //不允许拖拽
resizable:false, //不允许改变大小
closable:false, //不显示关闭按钮
collapsible:true, //允许折叠
bodyStyle:'background:#ffc;padding:10px', //设置样式
html:'我是window的内容',
//Ext items(array) 配置子组件的配置项
items:[{
//Ext的组件给我们提供了一个简单地写法 xtype属性去创建组件
xtype:'panel',
width:'50%',
height:100,
html:'我是面板'
},
//第二种方法,直接new一个对象
new Ext.button.Button({
text:'我是按钮new',
handler:function(){
alert('我被点击了');
alert(this.text);
}
})
// { //第一种方法,使用xtype声明
// xtype:'button',
// text:'我是按钮',
// handler:function(btn){
// alert('我被点击了');
// alert(btn.text);
// }
//
// }
]
});
win.show();
});
//在组件中操作子组件
var win = new Ext.Window({
id:'mywin',
title:'操作组件的形式',
width:500,
height:300,
renderTo:Ext.getBody(),
//表示在当前组件的top位置添加一个工具条,工具条中包含几个按钮,使用数组形式
tbar:[{ //bbar(bottom) lbar(leftbar) rbar(rightbar fbar(footbar))
text:'按钮1',
handler:function(btn){
//组件都会有up和down这两个方法,表示向上或向下查找,需要参数是组件的xtype或者选择器
alert(btn.up('window').title);
}
},{
text:'按钮2',
handler:function(btn){
//最常用的方式
alert(Ext.getCmp('mywin').title);
}
},{
text:'按钮3',
handler:function(btn){
//以上一级组件的形式去查找OwnerCt
alert((btn.ownerCt.ownerCt).title);
}
}]
});
win.show();
例3: windowGroup对象 操作window组
Ext.onReady(function(){
//用windowGroup对象去操作多个window窗口(4.0后,叫做ZIndexManager)
var wingroup = new Ext.WindowGroup();
for(var i = 1; i<= 5;i++){
var win = Ext.create('Ext.Window',{
title:'第' + i + '个窗口',
id:'win_' + i,
width:300,
height:300,
renderTo:Ext.getBody()
});
win.show();
wingroup.register(win); //把窗体对象注册给ZIndexManager
}
var btn1 = Ext.create('Ext.button.Button',{
text:'全部隐藏',
renderTo:Ext.getBody(),
handler:function(){
wingroup.hideAll(); //隐藏所有被管理起来的window组件
}
});
var btn2 = new Ext.button.Button({
text:'全部显示',
renderTo:Ext.getBody(),
handler:function(){
wingroup.each(function(cmp){
cmp.show();
});
}
});
var btn3 = new Ext.button.Button({
text:'把第三个窗口显示最前',
renderTo:Ext.getBody(),
handler:function(){
wingroup.bringToFront('win_3'); //把当前组件显示到最前端
}
});
var btn4 = new Ext.button.Button({
text:'把第五个窗口显示在最后',
renderTo:Ext.getBody(),
handler:function(){
wingroup.sendToBack('win_5'); //把当前组件显示到最后
}
});
});
5796关注|928收录
9615关注|1395收录
3269关注|480收录
暂无评论