日期:2014-05-16  浏览次数:20371 次

ExtJS获取当前对象所在容器

??? 今天把一个button放在了Ext.Window中,想用button确定window对象。n就没尝试成功。一开始用

buttons:[{
	text:'确定',
	handler:function(){
		alert(this.text);\\this就是公布handler的对象
	}
}]

?? 发现一切OK。然后开始取window

buttons:[{
	text:'确定',
	handler:function(){
		alert(alert(this.ownerCt.title);
	}
}]

?

?? 发现一直取不到值。狂晕中采用如下方法

buttons:[{
	text:'确定',
	handler:function(){
		alert(alert(this.ownerCt.ownerCt.title);
	}
}]

?

? 竟然OK了。难道是我没理解正确。

?完整代码如下:

?

?

Ext.onReady(function(){

	var _window = new Ext.Window({
		title:'登录',
		layout:'form',
		width:280,
		height:150,
		labelWidth:50,
		plain:true,
		defaults:{width:180},
		bodyStyle:'padding:3px',
		items:[{
			xtype:'textfield',
			fieldLabel:'姓名',
			id:'username'
		},{
			xtype:'textfield',
			fieldLabel:'密码',
			type:'password'
		}],
		buttons:[{
			text:'确定',
			handler:function(){
				alert(this.ownerCt.ownerCt.items.first().getValue());
				alert(this.ownerCt.ownerCt.items.itemAt(0).getValue());
				alert(Ext.getCmp("username").getValue());
				//alert(this.text);this就是公布handler的对象
			}
		}]
	});
	_window.show();
});

?

?
??????????????????
?

?

1 楼 jiangiwen 2010-11-06  
太谢谢了,找的我好苦! 
我都不知道怎么获得外层的对象,看了你的代码我下酒明白了,而且我也看明白呢说的那个问题了.
为什么要写 this.ownerCt.ownerCt.items.first().getValue() 才能得到值
应为你把 buttons 给忽略了.