为什么我在accordion panel 初始化一个panel才能正确显示其它动态生成的panel
如果没有初始化一个子panel,其它就不显示了。经过查看之后发现都有在页面生成。
现在的解决办法就是先hide再show,就没问题了。 
我想问为何会隐藏了。var accordion = Ext.create('Ext.panel.Panel', {
width: '100%',
height: '100%',
layout:'accordion',
defaults: {
bodyStyle: 'padding: 0 0 0 20%',
}
});
var panel = Ext.create('Ext.panel.Panel', {
width: 1200,
height: '100%',
layout: "border",
listeners: {
beforerender: {
fn: function()
{
//accordion.add({xtype: 'panel', title: 'hello'});
Ext.Ajax.request({
url: 'news.js',
success: function(response){
        var text = response.responseText;
        var jsonResult = eval(text);
        for(var i = 0; i < jsonResult.length; i+=1)
        {
         var panel = null;
         panel = Ext.create('Ext.panel.Panel', {
         title: jsonResult[i].title,
         });
         for(var j = 0; j < jsonResult[i].children.length; j+=1)
         {
         panel.add({
         xtype: 'button',
         height: 30,
width: 130,
margin: '10 0 0 0',
text: jsonResult[i].children[j].text,
         clz: jsonResult[i].children[j].clz,
         handler: createTab
         })
         }
         accordion.add(panel);
        }
        accordion.hide().show();
     }
});
}
}
},
renderTo: 'mainDiv',
                items: [{
region: 'north',
height: 80,
html: 'Logo'
}, {
region: 'west',
title: '模块列表',
width: '20%',
// split: true,
collapsible: true,
items: [accordion]
}, {
region: 'center',
tbar: tabpanel,
}]
});一直以来都没人帮我解答,希望讨论学习,不要为分而混

解决方案 »

  1.   

    LZ,我想问一下啊..
    我在一个window里面有个form 然后在form里面有几个文本框是动态添加进来并赋值的,
    绑定了一个双击事件,从record里面拿数据..可是动态的拿到,,可是我在双击另一条数据时他显示的就不正常了,带有前一次的动态生成的文本框..我打印过record每次都是不同的数据..
    为什么他第二次还保留前一个record的数据呢,请问这个问题怎么解决啊?怎么把上次的数据清一下?
      

  2.   

    每次拿出来的时候,把变量=null,不可能吗?
    发代码看看
      

  3.   

     accordion.dolayout();就实现了啊