无法从ExtJs面板中删除ExtJs GridPanel

时间:2010-10-12 13:47:02

标签: extjs

我有一个以空项集合开头的Panel。在应用程序的过程中,有必要将GridPanel添加到Panel。这似乎工作正常。

在应用程序的某个其他位置,有必要删除GridPanel,然后添加另一个。我已经尝试了几种清除Panels内容的方法,但没有任何乐趣。

遍历items集合并调用disable()不起作用。

调用items.removeAt(index)不起作用。

调用removeAll(true)不起作用。

网格停留在那里并且可见,仍然抛出所有相同的事件。如果我完成加载网格过程,则只显示一个网格。但是,应用程序的要求是,当填充网格的数据标准发生变化时,应清除网格。

3 个答案:

答案 0 :(得分:1)

我相信我已经解决了我的问题。

调用remove(itemName, true)似乎就是一招。

虽然我会对任何可以提供有关removeAll(true)无效的原因的见解感到好奇。

答案 1 :(得分:0)

你是如何添加GridPanel的?您可以在创建它的闭包中hide() GridPanel并添加它。或者,您可以尝试使用父组件上的GridPanel对象调用remove(panel)。我认为disable()也不会隐藏GridPanel,IIRC。

答案 2 :(得分:0)

这就是我为我的一个ext项目做的事情

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();
}

这是我的一个按钮的代码。