Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   gridPanel двойное контекстное меню (https://javascript.ru/forum/extjs/13840-gridpanel-dvojjnoe-kontekstnoe-menyu.html)

index0h 16.12.2010 01:09

gridPanel двойное контекстное меню
 
Всем привет, помогите с такой багой: есть 6 типов таблиц, созданных в Ext Designer примерно такого вида:
Код:

groupGridUi = Ext.extend(Ext.grid.GridPanel, {
    id: 'centerArea',
    store: 'listGroup',
    autoExpandColumn: 'name',
    initComponent: function() {
        this.selModel = new Ext.grid.CheckboxSelectionModel({
            sortable: true
        });
        userExpander.hidden = false;
        userExpander.header = 'Пользователи';
        groupExpander.hidden = true;
        groupExpander.header = 'Дочерние группы';
        this.columns = [
        this.selModel,
        {
            id:'name',
            xtype: 'templatecolumn',
            header: 'Название',
            tpl: '<a href="#">{name}</a>'
        },
        {
            xtype: 'datecolumn',
            header: 'Дата создания',
            editable: false,
            dataIndex: 'date'
        },
        userExpander,
        {
            xtype: 'templatecolumn',
            header: 'Родительская группа',
            width: 200,
            tpl: '<a href="{parent}">{parent}</a>'
        },
        groupExpander
        ];
        this.bbar = {
            xtype: 'paging',
            store: 'listGroup',
            pageSize: 10,
            autoHeight: true,
            autoWidth: true
        };
        groupGridUi.superclass.initComponent.call(this);
    },
    plugins: [
    userExpander,
    groupExpander,
    ]
});
groupGrid = Ext.extend(groupGridUi, {
    initComponent: function() {
        groupGrid.superclass.initComponent.call(this);
    }
});

где userExpander и groupExpander - Ext.ux.grid.CellExpander с немного измененным выводом.
Есть основной объект viewPort (id = 'viewPort') c тремя панелями (west,north,center(id=2)) в центральную панель нужно по нажатию на клавишу вставлять одну из таблиц, делаю я это так:
Код:

function(button)
{
    var cmp = Ext.getCmp('viewPort').getComponent(2);
    cmp.add(new groupGrid());
/*
cmp.remove(Ext.getCmp('centerArea'));
Предварительная очистка центральной области дает такой результат: таблица появляется через раз.
*/
    cmp.doLayout();
    Ext.getCmp('viewPort').syncSize();
}

Собственно проблема вот в чем: при многократном изменении таблицы в центре получаю примерно такую плавающую ошибку(((:help: :

Заранее благодарен.


Часовой пояс GMT +3, время: 01:58.