首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gwt-Ext中combox store的重新渲染

Gwt-Ext中combox store的重新渲染
EN

Stack Overflow用户
提问于 2008-09-18 07:28:45
回答 4查看 4.3K关注 0票数 4

我已经创建了一个表单面板,并且我正在面板中呈现两个组合框,其中包含一个通过响应处理程序填充的存储。问题是,如果我想要再次渲染面板,它会渲染没有商店的组合框,尽管我正在重建面板。我试着调试以找出原因,令人惊讶的是,尽管对于组合框,存储在调用-comboBox.setStore(存储)时是空的,它检查属性(isRendered)并发现它为真,因此不添加存储,而只是保留现有的存储,它仍然是空的。

我在另一个场景中看到过这个问题,我创建了一个包含Combobox的可折叠字段集,在最小化和最大化字段集上,由于同样的原因,商店消失了。

有没有人能帮帮我,我完全被震住了,我试过各种方法,但都不起作用。

EN

回答 4

Stack Overflow用户

发布于 2008-09-20 18:22:59

谢谢你的评论,实际上我尝试过插件的方法,但我不能完全理解我如何获得商店的句柄,它不是组件的公开元素。

无论如何,我尝试了其他方法,在调试过程中我发现,虽然我在单击显示按钮时再次创建组件,但传递的ID是相同的(这是所需的),但不知何故,对于给定的id,在Ext.Components中已经有了先前的引用。

因此,一个简单的解决方案如下: Component comp = Ext.getCmp(id);if ( comp != null ) comp.destroy( );

这实际上是导致ComboBox的( isRendered( ))属性返回true的引用,不再可用,因此我可以再次正确地看到存储。

我希望这对其他面临类似问题的人有所帮助。无论如何,感谢您的回复。

票数 2
EN

Stack Overflow用户

发布于 2008-09-18 10:02:04

你有没有尝试过FormPaneldoLayout()方法

票数 0
EN

Stack Overflow用户

发布于 2008-09-18 10:52:57

ComboBox.view.setStore()应该会有所帮助。

如果view是一个私有变量,只需在创建时在组合框配置参数之间提及它即可。如果没有帮助,你可以像这样使用插件:

代码语言:javascript
复制
view_plugin = {

     init: function(o) {

          o.setNewStore = function(newStore) {
              this.view.setStore(newStore);
          };
     }
};

并添加一行

代码语言:javascript
复制
plugins: view_plugin,

到Combobox配置。

然后,您可以稍后在代码中调用combobox.setNewStore(newStore)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/90713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档