Extjs Ext:combo'的数据存储后绑定formpanel;s已加载

Extjs Ext:combo'的数据存储后绑定formpanel;s已加载,extjs,Extjs,在我正在使用的ExtJS应用程序中,我有一个formpanel,其中包含(除其他控件外)三个组合框,每个组合框都有不同的数据存储。我需要用现有数据加载表单,并在表单中显示这些数据。这适用于所有simpel控件(文本框、复选框),但组合框存在问题 组合框每个都使用一个数据存储,但我可以看到,在表单加载自己的数据之前,只有一个存储被加载,这导致一个组合框显示正确的文本,另外两个显示正确的值。如果单击并关闭组合框而不进行选择,则会显示正确的文本 有没有一种方法可以延迟加载表单或绑定表单,直到所有数据存

在我正在使用的ExtJS应用程序中,我有一个formpanel,其中包含(除其他控件外)三个组合框,每个组合框都有不同的数据存储。我需要用现有数据加载表单,并在表单中显示这些数据。这适用于所有simpel控件(文本框、复选框),但组合框存在问题

组合框每个都使用一个数据存储,但我可以看到,在表单加载自己的数据之前,只有一个存储被加载,这导致一个组合框显示正确的文本,另外两个显示正确的值。如果单击并关闭组合框而不进行选择,则会显示正确的文本


有没有一种方法可以延迟加载表单或绑定表单,直到所有数据存储都加载完毕?数据存储是自动加载的本地存储,formpanel在afterlayout事件中调用自己的加载。

在渲染完成后加载formpanel。您在afterlayout事件中加载表单有什么具体原因吗


afterrender事件而不是afterlayout中加载表单。afterrender事件在所有表单完全呈现时发生。

问题在于,通过加载表单执行的setValue在实际加载组合框的存储之前执行

您可以尝试在sencha.com上的论坛帖子中实现ExtJS的condor和animal修复程序:


它基本上只是延迟对任何combobox的setValue调用,直到combobox的存储被完全加载。

这不是由于渲染,而是因为表单加载操作是在加载三个combobox存储之前执行的。由于存储的异步特性,这不是很简单。奇怪的是,需要这样的修复,我想这是一个非常常见的场景。还是通过使用远程类型的非自动加载数据存储在窗体上使用组合框的首选方法?关于这方面的文档非常少,我真的不知道推荐的方法是什么…你不是第一个注意到这一点的人。。。combobox存储的实现及其异步性质是ext社区讨论的焦点,我发布的链接说明了这一点,因为有几个请求将修复添加到正式的ext发行版中。ext有很多方面可以改进,但总的来说,它是一个很棒的系统。