如何查找表并在其商店中添加新记录?

时间:2012-07-09 15:01:43

标签: extjs extjs4

我需要根据我拥有的一些信息更新商店。

我在文档中有一个表,它使用一些Store来保存数据, 在页面的单独部分,我有一个按钮,需要向Store(和表)添加一些信息。我有点困惑,所以,我只想问我需要知道的一切:

  1. 需要指定表配置中的哪个属性才能在以后找到表?
  2. 我需要拨打哪个电话来查找该表并找到它的商店?
  3. 如何生成数据并将其附加到表的现有商店?

2 个答案:

答案 0 :(得分:3)

你所指的“表格”是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配置和ComponentQuery。 ComponentQuery类提供基于选择器的Sencha组件搜索,类似于DOM查询。例如:

var myGrid = Ext.create('Ext.grid.Panel', {
        itemId: 'myGrid',   
    // All other configs...
});

要获得引用,您可以从容器中调用query()方法或使用Ext.ComponentManager(这是全局的)。

在MVC控制器中访问:如果您正在使用MVC开发应用程序,则可以使用此方法。控制器具有参考数组,即:refs。 (在内部,该方法使用ComponentQuery和选择器来访问组件)。请参阅MVC指南和示例,了解其工作原理..

<小时/> 2.使用上述任何技术获得网格后,只需调用方法getStore()即可获得商店。这将返回商店对象(Ext.data.Store)。例如:

myStore = myGrid.getStore();

<小时/> 3.参考Ext.data.Store文档。您可以使用add()load()remove()等方法操纵网格商店...

答案 1 :(得分:1)

FYI。 它不是

Ext.Cmp()

它是

Ext.getCmp('myGrid')