2010-10-12 5 views
1

У меня есть панель, которая начинается с пустой коллекции элементов. В ходе приложения становится необходимым добавить GridPanel в Panel. Кажется, это работает нормально.Не удается удалить ExtJs GridPanel с панели ExtJs

В другом месте приложения необходимо удалить GridPanel и добавить еще один. Я пробовал несколько методов для очистки содержимого панелей, но без радости.

Итерация через коллекцию предметов и называется disable() не работает.

Вызов items.removeAt(index) не работает.

Вызов removeAll(true) не работает.

Сетка остается там и видна, все еще бросая все те же события. Если я пройду процедуру загрузки сетки, отобразится только одна сетка. Но требования приложения таковы, что сетка должна быть очищена при изменении критериев для данных, заполняющих сетку.

ответ

1

Я считаю, что я решил свою проблему.

Вызов remove(itemName, true) кажется трюком.

Хотя мне было бы любопытно, чтобы кто-нибудь мог понять, почему removeAll(true) не работает.

0

Как вы добавляете GridPanel? Вы могли бы hide() GridPanel в закрытии, который вы его создали, и добавьте его. Или вы можете попробовать позвонить remove(panel) с объектом GridPanel на родительский компонент. Я думаю, disable() не скрывает GridPanel, а также IIRC.

+1

Я добавлял через 'grid.items.add (itemName, new Ext.grid.GridPanel (...), но, как я уже сказал, я получил его для работы с' remove (itemName, true) '. –

0

Это то, что я сделал для одного из моих проектов внутр

click: function() { 
    var tempRef = Ext.getCmp("createPanel"); 

    tempRef.remove(Ext.getCmp("step2"),false); 
    tempRef.doLayout(); 
    tempRef.update(); 

    tempRef.insert(1,Ext.getCmp("step1")); 
    tempRef.doLayout(); 

    Ext.getCmp("backButton").disable(); 
    Ext.getCmp("backNext").enable(); 
} 

Это код для одной из моих кнопок.

Смежные вопросы