一旦将数据设置为GridPanel存储,Panel内的Sencha ExtJS Gridpanel就不会渲染

时间:2014-10-09 14:05:53

标签: javascript extjs

我在垂直面板中有一个Gridpanel,这样我就可以在gridpanel下放置一些东西。在我在gridpanel上设置store属性之前,一切都没有问题。然后窗口变成白色,没有任何渲染。我必须有一些小的东西。

newWindow = Ext.create('Ext.window.Window', {
    title: 'View Data',
    height: 400,
    width: 600,
    layout: 'fit',
    bodyPadding: 5,
    resizable: false,
    items: 
    [ 
        { xtype:'panel', layout:{ type:'vbox', pack:'center' }, items:
            [
                { xtype: 'gridpanel', height:200, columns: 
                    [
                        { header: 'A', dataIndex: 'a'}, 
                        { header: 'B', dataIndex: 'b' },
                        { header: 'M', dataIndex: 'm' },
                        { header: 'i', dataIndex: 'i' }
                    ], store: store, forceFit: true, border: true
                },
                { xtype:'panel', title: 'Hot Load',  border: true, margin:'5', height:150, width: 500, layout:{ type:'hbox', pack:'center' }, bodyBorder: true, collapsible: true }
            ]           
        }
    ],
    buttons: 
    [
        { text: 'OK' } ,
        { text: 'Cancel' }
    ]
});

1 个答案:

答案 0 :(得分:0)

商店中的数据可能会以某种方式出现问题 - 您不会在此处显示代码。

我确实使用商店创建了一个jsFiddle ..如果你使用一些示例数据填充你的商店并仍然得到渲染问题,我开始用类似于这个jsFiddle的东西并添加额外的格式/对此有所了解。

我确实删除了额外的面板,并且jsFiddle并没有真正处理Ext.window.Window所以我只使用了一个面板。

http://jsfiddle.net/LgyLsmv2/

Ext.define('Example', {
    extend: 'Ext.data.Model',
    fields: [{
        name: 'a'
    }, {
        name: 'b'
    }, {
        name: 'm'
    }, {
        name: 'i'
    }]
});

var store = Ext.create('Ext.data.Store', {
    model: 'Example',
    data: [{
        a: 'test A',
        b: 'test B',
        m: 'test M',
        i: 'test I'
    }, {
        a: 'test A',
        b: 'test B',
        m: 'test M',
        i: 'test I'
    }, {
        a: 'test A',
        b: 'test B',
        m: 'test M',
        i: 'test I'
    }]
});

newWindow = Ext.create('Ext.panel.Panel', {
    title: 'View Data',
    height: 400,
    width: 600,
    //layout: 'fit',
    //bodyPadding: 5,
    //resizable: false,
    renderTo: Ext.getBody(),
    items: [{
        xtype: 'gridpanel',
        //height: 200,
        columns: [{
            header: 'A',
            dataIndex: 'a',
            flex: 1
        }, {
            header: 'B',
            dataIndex: 'b',
            flex: 1
        }, {
            header: 'M',
            dataIndex: 'm',
            flex: 1
        }, {
            header: 'i',
            dataIndex: 'i',
            flex: 1
        }],
        store: store //,
        //forceFit: true,
        //border: true
    }, {
        xtype: 'panel',
        title: 'Hot Load',
        //border: true,
        //margin: '5',
        height: 150,
        width: 500 //,
        //layout: {
            //type: 'hbox',
            //pack: 'center'
        //},
        //bodyBorder: true,
        //collapsible: true
    }],
    buttons: [{
        text: 'OK'
    }, {
        text: 'Cancel'
    }]
});