ext js 4.2.1中关于Store的各类操做

extjs的表格, 下拉列表等控件, 均可以与Store关联, 由Store代理数据操做, 所以常常须要用Store来添加、删除,读取、修改数据。javascript

Store能够指定Proxy来加载数据, 这个在API Docs中很容易找到示例。这里只举出示例中没有提到的操做, 须要仔细阅读api。java

var store = Ext.create('Ext.data.Store', {
        fields: ['time', 'send', 'recv'],
        autoSync: true,
        proxy: {
            type: 'memory',
            reader: {
                type: 'json',
                root: 'data'
            }
        }
});

这是一个本地的store, 有三个字段。数据库

1. 添加记录

store.add({time: Ext.Date.format(new Date(), "H:i:s.u"),
                  recv: "SEND",
                  send: "RECV"});

Store的add函数原型是这样的(API docs):json

add( model ) : Ext.data.Model[]api

Parameters数组

  • model : Ext.data.Model[]/Ext.data.Model.../Object[]/Object...

    An array of Model instances or Model configuration objects, or variable number of Model instance or config arguments.  我来翻译一下: model实例或配置的数组, 或者是任意个model实例或配置(也就是可变入参, 不懂的能够去搜javascript的arguments对象)服务器

Returns函数

也就是说, 入参model能够是四种类型, 翻译

a. Ext.data.Model[], Model数组

b. Object[], config数组

c. Ext.data.Model, 单个Model对象, 能够填任意多个(可变参数)

d. Object,  单个config对象,能够填任意多个(可变参数)。

本示例中用的就是第4个类型, 入参是一个config, extjs将根据这个config, 最终建立一个Model[], 添加到Store中。

2. 删除记录

remove( records )

删除记录。records非常单个Model对象,或Model数据, 或者是一个index, 或者是一个index的对象。

index是从0开始计数的

removeAt(index, count), 从index开始删除count条记录

rmoveAll([silent]), 删除全部的记录

3. 读取记录

1. getAt( index ) : Ext.data.Model  读取指定位置的记录, 这个很容易理解

2. find( fieldName, value, [startIndex], [anyMatch], [caseSensitive], [exactMatch] ), 根据字段的值查寻, 能够模糊匹配, 返回匹配的第一个记录值的。index。

 

3. findBy( fn, [scope], [startIndex] ), 调用者能够自定义一个function(record, id)来配置本身的查找策略。

4. findExact( fieldName, value, [startIndex] )。 根据字段值精确查寻, 返回匹配的第一个记录值的。index。这个函数是find的简化版

5. findRecord( fieldName, value, [startIndex], [anyMatch], [caseSensitive], [exactMatch] ) : Ext.data.Model.  与find函数功能相似, 可是直接返回了Model。默认条件下, 进行模糊查寻, 所以须要特别注意。

4. 修改记录

通常来讲, 不会直接操做store去修改数据, 由于store与grid等关联, 直接修改grid的单元格内容, grid内部已经封装好了。若是须要将修改过的内容提交到服务器, 能够经过个这函数实现

getUpdatedRecords( ) : Ext.data.Model[]

5. Ext.data.Model操做

get( fieldName ) : Object 读取某个字段的值

getData( includeAssociated), 从model读取原始的数据, 注意, 这个对象在每次读取时, 都会从新生成, 并非Store中传入的那些数据, 而是一个副本, 而且只包含Model中定义过的字段。

includeAssociated表示是否包含关联的数据。 Model能够其它的Model进行关联, 相似于数据库的外键

相关文章
相关标签/搜索