Extjs4 Ext JS 4-如何更改可以';不能被ID引用
我非常感谢您对以下问题的帮助: 我需要能够更改一个项目的内容(div或textfield),但问题是同一个窗口将有多个实例,因此我不能使用div id 我试过这个小例子:Extjs4 Ext JS 4-如何更改可以';不能被ID引用,extjs4,Extjs4,我非常感谢您对以下问题的帮助: 我需要能够更改一个项目的内容(div或textfield),但问题是同一个窗口将有多个实例,因此我不能使用div id 我试过这个小例子: var myBtnHandler = function(btn) { myPanel.items.items[0].html = "Changed by click!"; myPanel.doLayout(); } var fileBtn = new Ext.Button({ text : 'Chan
var myBtnHandler = function(btn) {
myPanel.items.items[0].html = "Changed by click!";
myPanel.doLayout();
}
var fileBtn = new Ext.Button({
text : 'Change',
handler : myBtnHandler
});
var panel1 = {
html : 'Original content.'
};
var myPanel = new Ext.Window({
title : 'How to change it?',
items : [
panel1,
fileBtn
]
});
myPanel.items.items[0].html = "Changed on load!";
myPanel.show();
通过myPanel.items.items[0]引用元素在加载时工作,但在按钮处理程序中不工作-这是与范围相关的问题吗?如何引用没有ID的元素
多谢各位
H.有几个函数可以遍历属于容器的元素。尝试使用例如down()
其中“button”参数的意思是“告诉我哪种类型的元素等于“button”。查看Sencha文档也可以查询各种元素:有几个函数可以遍历属于容器的元素。尝试使用例如down()
其中“button”参数的意思是“告诉我哪种类型的元素等于“button”。查看Sencha文档也可以查询各种元素:问题与范围无关。第一次设置html属性时,组件尚未呈现,因此在初始呈现时,它将从组件中读取html属性。第二次,你只是在一个对象上设置一个属性,它不会有任何反应 相反,应该使用update()方法
这个问题与范围无关。第一次设置html属性时,组件尚未呈现,因此在初始呈现时,它将从组件中读取html属性。第二次,你只是在一个对象上设置一个属性,它不会有任何反应 相反,应该使用update()方法
以下是民政事务局局长的答覆。把他的建议和你的例子联系起来
var myBtnHandler = function(btn) {
btn.up('window').down('panel').update('Changed by click!');
}
var fileBtn = new Ext.Button({
text : 'Change',
handler : myBtnHandler
});
var panel1 = {
html : 'Original content.'
};
var myPanel = new Ext.Window({
title : 'How to change it?',
items : [
panel1,
fileBtn
]
});
myPanel.show();
myPanel.update('Changed on load!');
以下是民政事务局局长的答覆。把他的建议和你的例子联系起来
var myBtnHandler = function(btn) {
btn.up('window').down('panel').update('Changed by click!');
}
var fileBtn = new Ext.Button({
text : 'Change',
handler : myBtnHandler
});
var panel1 = {
html : 'Original content.'
};
var myPanel = new Ext.Window({
title : 'How to change it?',
items : [
panel1,
fileBtn
]
});
myPanel.show();
myPanel.update('Changed on load!');
谢谢你,但是我不能让它工作——不管我如何重新排序代码,不管我使用的是doLayout()还是update()。您能提供一些工作代码吗?谢谢,但我无法让它工作-无论我如何重新排序代码,无论我使用的是doLayout()还是update()。您能提供一些工作代码吗?这个解决方案也很有效-谢谢大家,你们都很有帮助。没问题,但我强烈建议不要使用items.items[0]来引用您的组件。如果您添加组件而忘记更新索引值,那么养成这种习惯将导致出现错误。此解决方案也很有效-谢谢大家,你们都很有帮助。没问题,但我强烈建议不要使用items.items[0]引用您的组件。如果您添加组件并忘记更新索引值,那么养成这种习惯将导致bug。
var myBtnHandler = function(btn) {
btn.up('window').down('panel').update('Changed by click!');
}
var fileBtn = new Ext.Button({
text : 'Change',
handler : myBtnHandler
});
var panel1 = {
html : 'Original content.'
};
var myPanel = new Ext.Window({
title : 'How to change it?',
items : [
panel1,
fileBtn
]
});
myPanel.show();
myPanel.update('Changed on load!');