我需要根据我拥有的一些信息更新商店。
我在文档中有一个表格,它使用一些商店来保存数据,在页面的单独部分我有一个按钮,需要向商店(和表格)添加一些信息。我有点困惑,所以,我只是在这里问我需要知道的一切:
- 需要指定表配置中的哪个属性来稍后定位表?
- 我需要拨打哪个电话才能找到桌子并找到它的商店?
- 如何生成数据并将其附加到表的现有存储中?
您所指的“表”是ExtJS 术语中的Grid。
1. 要获取网格供以后使用,您需要对该对象的引用。ExtJS 中有很多方法可以获取这个引用。
使用 Javascript 变量:最简单的方法是拥有一个保存引用的 javascript 变量。这通常在创建网格时完成。例如:
var myGrid = Ext.create('Ext.grid.Panel', {
// All the configs...
});
您可以使用该myGrid
变量来访问网格。
使用 ComponentManager:当一个 ExtJS 组件被创建时,它被注册到组件管理器中。你总是可以从这个寄存器中获得一个 ExtJS 组件。管理器使用唯一 ID 跟踪每个组件。要使用此方法,您必须为您的网格组件定义一个唯一的 id,然后使用著名的Ext.getCmp()
方法。这是一个例子:
var myGrid = Ext.create('Ext.grid.Panel', {
id: 'myGrid', // Unique id for the grid
// All other configs...
});
使用此方法不是最佳做法。
使用 itemId 和 Component Query:比上述两种更好的方法;您可以使用itemId
config 和ComponentQuery。ComponentQuery 类提供基于选择器的 Sencha 组件搜索,类似于 DOM 查询。例子:
var myGrid = Ext.create('Ext.grid.Panel', {
itemId: 'myGrid',
// All other configs...
});
要获得引用,您可以query()
从容器中调用该方法或使用 Ext.ComponentManager(这是全局的)。
在 MVC 控制器中访问:如果您正在使用 MVC 开发应用程序,则可以使用此方法。一个控制器有参考数组,即:refs
。(在内部,该方法使用 ComponentQuery 和选择器来访问组件)。请参阅 MVC 指南和示例以了解其工作原理。
getStore()
。这将返回存储对象 ( Ext.data.Store
)。例子:
myStore = myGrid.getStore();
add()
的load()
存储remove()
...
供参考。它不是
Ext.Cmp()
它是
Ext.getCmp('myGrid')