ExtJS:使用一个网格加载多个商店
Posted
技术标签:
【中文标题】ExtJS:使用一个网格加载多个商店【英文标题】:ExtJS: Loading multiple stores using one Grid 【发布时间】:2012-06-06 17:16:50 【问题描述】:我对 ExtJS 还很陌生,所以我想知道哪种方法最适合使用一个网格显示不同的信息视图。这就是我正在考虑做的事情。我有三个不同的数据存储,每个都使用代理并返回 JSON。我们称它们为 STORE1、STORE2 和 STORE3。我正在使用不同的商店,因为每个商店都有不同的参数,这些参数正在执行以从服务器中检索。现在,我想包含三个按钮,每个按钮都会触发一个用于填充网格的商店。在实例化之后,如何为 Grid 指定一个新的 store 来使用?我在 Grid 对象中没有看到 setStore() ,所以我不确定如何解决我的问题。如果有人能给我一些见解,那将不胜感激。
【问题讨论】:
【参考方案1】:Grid 有方法bindStore
。如果您还需要分配不同的列集 - 请检查 reconfigure
方法
【讨论】:
是的,这也是一个不错的选择。 +1 另一个想法是使用卡片布局并显示绑定到 3 个不同商店的相同网格。这将使三种状态之间的切换比重新获取数据和重新配置视图更快。【参考方案2】:有几种方法可以解决这个问题。
我要做的第一件事就是仔细考虑您的用例。您确定这是您想要处理用户界面的方式吗? 过滤数据(默认情况下或用户交互)是否更有意义。有几个这样的例子。想到的一个是简单的任务小部件(不是那么简单)http://docs.sencha.com/ext-js/4-1/#!/example/simple-tasks/index.html - 右上角的按钮根据用户选择过滤商店。它使用一个网格+一个商店..但根据用户选择过滤数据。
如果您准备从不同的存储加载数据,您可以使用一个存储来管理视图,而其他存储来获取数据。在加载获取数据的商店时,您使用 loadData(或 loadRecords)方法来更新控制视图的商店。说得通?不过要注意这里的极端情况..如果两次加载相同的数据会发生什么?您应该在 loadData 方法上使用“附加”选项吗?
祝你好运。
【讨论】:
感谢您的反馈。这个例子让我现在开始思考新事物。我真的很喜欢这个主意。当您谈论过滤时,您是否建议加载所有数据然后过滤掉?我问是因为我们有很多数据,如果我不分解它,我觉得这会对性能产生巨大影响。这是经常做的事情吗?不过,我不确定我的思维方式是否有效。 这取决于您如何设计。我认为每个人都在努力包含数据。我首选的方法是对数据进行分页 - 因此一次只能获取 50 条记录。然后让用户对其进行排序(远程排序),过滤它 - 通过过滤器插件或自定义过滤器方法(如示例中),最后搜索它。其他人喜欢无限滚动(通过缓冲存储)。无论哪种方式,在页面上飞溅 5K 记录有什么意义?没有人可以以任何有意义的方式消费它。以上是关于ExtJS:使用一个网格加载多个商店的主要内容,如果未能解决你的问题,请参考以下文章