获取对Extjs中itemId的引用

获取对Extjs中itemId的引用,extjs,Extjs,我有这样一个窗口类: Ext.define('EMS.tf.alerts.alerts.view.AlertWindow', { extend: 'Ext.window.Window', alias: 'widget.ems-alerts-window', height: 220, width: 600, alertTpl: undefined, autoScroll: true, selectedRecord: undefined,

我有这样一个窗口类:

Ext.define('EMS.tf.alerts.alerts.view.AlertWindow', {
    extend: 'Ext.window.Window',
    alias: 'widget.ems-alerts-window',
    height: 220,
    width: 600,
    alertTpl: undefined,
    autoScroll: true,
    selectedRecord: undefined,
    title: undefined,
    atext: undefined,

    // @private
    initComponent: function() {
        var me = this;

        Ext.apply(me, {
            tpl: me.alertTpl,
            listeners: {
            show: function() {
                Ext.create('Ext.Container', {
                    renderTo: 'alertContainer',
                    itemId: 'buttonContainer',
                    items   : [{
                            xtype: 'button',
                            cls: 'ackbtn',
                            text : 'Acknowledge',
                            name: 'ackButton',
                            itemId: 'renderbutton'
                        },{
                            xtype: 'button',
                            cls: 'attchmntbtn',
                            text : 'Attachment',
                            name: 'attButton',
                            itemId: 'renderattachmntbutton'
                        }]
                    });
                }
            },          
            title: me.title
        });
        me.callParent();
    }
});
我想使用itemId“renderattachmntbutton”获取对按钮“附件”的引用。如何做到这一点


我尝试了windowobject.down(“#renderattachmntbutton”),但仍然不起作用。我可以获得对放置在init函数之前的项的引用,但不是这样。您知道需要做什么来获取对该按钮的引用吗?

itemId可以与父项的getComponent()调用一起使用,例如容器和面板。如果您将容器上的itemId更改为一个id属性。然后,您可以访问您的子项,如下所示:

Ext.getCmp('buttonContainer').getComponent('renderattachmntbutton');

这只是一种可能的方式,还有其他方式

itemId可以与父项的getComponent()调用一起使用,如容器和面板。如果您将容器上的itemId更改为一个id属性。然后,您可以访问您的子项,如下所示:

Ext.getCmp('buttonContainer').getComponent('renderattachmntbutton');

这只是一种可能的方式,还有其他方式

该按钮不是窗口的项(子项),而是按钮容器的项。如果您想用down找到它,那么需要获取容器的引用并调用down

而不是

windowobject.down('#renderattachmntbutton') // WRONG
召唤


该按钮不是窗口的项(子项),而是按钮容器的项。如果您想用down找到它,那么需要获取容器的引用并调用down

而不是

windowobject.down('#renderattachmntbutton') // WRONG
召唤

你可以试试

windowobject.down('[itemId=renderattachmntbutton]') ;
你可以试试

windowobject.down('[itemId=renderattachmntbutton]') ;
试试这个

Ext.ComponentQuery.query('[itemId=renderattachmntbutton]')[0]
试试这个

Ext.ComponentQuery.query('[itemId=renderattachmntbutton]')[0]

阅读
renderTo
的文档。阅读
renderTo
的文档。感谢您的回复。但是如果我再次打开窗口,那么我将得到未捕获的异常,因为它试图注册相同的id“buttonContainer”。这就是我只想使用itemids的原因。谢谢你的回复。但是如果我再次打开窗口,那么我将得到未捕获的异常,因为它试图注册相同的id“buttonContainer”。这就是我只想使用ItemIDs的原因,但是如何获得对“buttoncontainer”的引用呢?它是containerWell的一个itemId,我永远不会这样编写它,因为它太依赖于Ext从中提取的HTML。若按钮是窗口的直接项(推荐),那个么您的原始代码就可以工作了。但如何获得对“buttoncontainer”的引用呢?它是containerWell的一个itemId,我永远不会这样编写它,因为它太依赖于Ext从中提取的HTML。如果按钮是窗口的直接项(推荐),那么您的原始代码就可以工作了。也尝试了,但没有运气。也尝试了,但没有运气