Javascript 外接窗口不近

Javascript 外接窗口不近,javascript,extjs,panel,extjs3,Javascript,Extjs,Panel,Extjs3,我有一个窗口,上面有两个项目。在第二个项目中,即面板,在面板项目中,我在后渲染中推送一些数据。之后,所有其他操作都正常进行,但没有关闭窗口 afterrender: function(){ var p = this; var grid = Ext.getCmp('GRID'); var record = grid.getSelectionModel().getSelections(); var actionRecItemsLen = record.length;

我有一个窗口,上面有两个项目。在第二个项目中,即
面板
,在面板项目中,我在
后渲染
中推送一些数据。之后,所有其他操作都正常进行,但没有关闭窗口

 afterrender: function(){
    var p = this;
    var grid = Ext.getCmp('GRID');
    var record = grid.getSelectionModel().getSelections();
    var actionRecItemsLen = record.length;
    var recItem = p.items.items;
    for(var i=0;i<actionRecItemsLen; i++){
            var clsName = new Recordrfc();  // Getting a container class.
            recItem.push(clsName); 
        }
            this.doLayout();
}
afterrender:function(){
var p=这个;
var grid=Ext.getCmp('grid');
var record=grid.getSelectionModel().getSelections();
var ActionReconDemslen=记录长度;
var REDUCTEM=p.items.items;

对于(var i=0;i您应该使用容器的add方法(窗口为container)来添加新组件。items属性只是用于存储添加组件的集合。对于将新组件添加到容器,需要执行的操作远不止将对象添加到集合项,所有这些操作都放在add方法中。请尝试以下操作:

 afterrender: function(){        
        var grid = Ext.getCmp('GRID');
        var record = grid.getSelectionModel().getSelections();
        var actionRecItemsLen = record.length;        
        for(var i=0; i < actionRecItemsLen; i++){
            var clsName = new Recordrfc();  // Getting a container class.
            this.add(clsName); 
        }

        this.doLayout();
    }
afterrender:function(){
var grid=Ext.getCmp('grid');
var record=grid.getSelectionModel().getSelections();
var ActionReconDemslen=记录长度;
对于(var i=0;i
是的,但在这种情况下,它只添加一个
clsName
。这样一来,for循环的存在就不重要了。无论如何,感谢您的回答。您在每个循环迭代中都创建了新项。我认为我的代码应该与您的方法完全相同,但我使用add()方法添加新组件。因此,它应该在网格中的每个选择上创建一个新的Recordrfc实例,并将其添加到组件中。我认为Recordrfc存在问题,可能无法多次创建它?让我们尝试手动添加两次:
afterrender:function(){var clsName1=new Recordrfc();this.add(clsName1);var clsName2=new Recordrfc();this.add(clsName2);this.doLayout();}
您的Recordrfc()是什么?