​Extjs页面创建了一个窗口代码如下,请教大家如何通过itemId 来直接访问最下面的这个'保存'按钮

varwin=Ext.create("Ext.window.Window",{title:"卡牌编辑",width:360,height:340,items:{xtype... var win = Ext.create("Ext.window.Window", {
title: "卡牌编辑",
width: 360,
height: 340,
items: {
xtype: "form",
margin: 5,
border: false,
items: [....]
},
buttons: [
{ text: "保存",
itemId : 'btn_save' }]
});
不要直接回答我,要先页面测试哦,谢谢
展开
 我来答
百度网友ce8a783
推荐于2016-05-02 · TA获得超过318个赞
知道小有建树答主
回答量:349
采纳率:50%
帮助的人:266万
展开全部

你直接说要先测试是因为win.getComponent('btn_save')取不到控件是吧?

这是因为buttons里的控件挂靠到的不是win,而是toolbar里,也就是这个按钮的容器不是win而是toolbar

所以正确的取法应该是win.queryById('btn_save')

var win = Ext.create("Ext.window.Window", {

title: "卡牌编辑",

width: 360,

height: 340,

items: {

xtype: "form",

margin: 5,

border: false,

       items: []

        },

buttons: [

{ text: "保存",

itemId : 'btn_save' }

],

renderTo:Ext.getBody()

}

); 

win.show();

Ext.defer(function(){

win.queryById('btn_save').setDisabled(true);

},5000);

来自:求助得到的回答
草木摇落
2015-01-30
知道答主
回答量:29
采纳率:0%
帮助的人:10.4万
展开全部
itemId
: String

当没有可利用的对象引用时,itemId可以作为第二选择,用来获得一个组件的引用, 代替 id 与 Ext. getCmp的组合, 使用 itemId 与 Ext.Container. getComponent 方法配合将会获得
itemId 's(的所有者) 或者 id 's(的所有者)。 既然 itemId
's(的所有者)是一个到容器内部MixedCollection的索引, itemId
的作用域就被限定在容器之内---避免与 Ext.ComponentMgr 产生潜在的冲突,它(指Ext.ComponentMgr)需要一个
唯一的 id 。

var c = new Ext.Panel({ //
height: 300,
renderTo: document.body,
layout: 'auto',
items: [
{
itemId: 'p1',
title: 'Panel 1',
height: 150
},
{
itemId: 'p2',
title: 'Panel 2',
height: 150
}
]
})
p1 = c.getComponent('p1'); // 与 Ext.getCmp()不同

p2 = p1.ownerCt.getComponent('p2'); // 通过兄弟对象获得引用

另请参见 id 和 ref 。

注意:需要访问一个item的容器请参见 ownerCt 。
追问
没有直接回答我的问题
追答
解决问题的方法,可以查看api。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式