本系列教程基本可以看做是ExtJS API中文版+实例演示
更多内容请参看:http://www.cnblogs.com/mrye
Ext.data.Store 用法介绍
这个组件继承自Ext.data.AbstractStore
本篇讲解了如何构造并且做一些基本使用,如果有什么疑问可以联系我QQ1330771552
下面是他的属性列表
autoLoad
autoSync
buffered
clearOnPageLoad
clearRemovedOnLoad
data
fields
filters
groupDir
groupField
leadingBufferZone
listeners
model
pageSize
proxy
purgePageCount
remoteFilter
remoteGroup
remoteSort
sortOnFilter
storeId
trailingBufferZone
|
var PAGESIZE = 20;
var demoStore = Ext.create( 'Ext.data.Store' , {
fields : [{
name : 'primaryKey' ,
type : 'int'
},{
name : 'price' ,
type : 'float'
}, {
name : 'productName' ,
type : 'string'
}, {
name : 'title' ,
type : 'string'
}, {
name : 'buyDate' ,
type : 'date' ,
dateFormat : 'Y-m-d'
}],
proxy : {
type : 'ajax' ,
url : '/read/demo/product.action' ,
reader : {
type : 'json' ,
root : 'root' ,
totalProperty : 'totalProperty'
}
},
autoLoad : true ,
pageSize : PAGESIZE
});
Var demoGrid = Ext.create( 'Ext.grid.Panel' , {
border : false ,
selModel : Ext.create( 'Ext.selection.CheckboxModel' ),
store : renYuanStore,
columns : renYuanColumns(),
pageChange : true ,
bbar : [{
xtype : 'pagingtoolbar' ,
pageSize : PAGESIZE,
store : renYuanStore,
dock : 'bottom' ,
plugins : Ext.create( 'Ext.ux.ProgressBarPager' )
}],
listeners : {
itemdblclick : function () {
editBtn.handler();
}
}
});
|
该组件相当于一个数据源,能够给很多呈现数据的组件提供数据。
核心工作过程是:
首先请求后台读取数据,接受后台返回的数据(其实就是个字符串)
然后按照指定格式解析数据。通常默认格式为json
我们可以自定义解析规则。详细参看Ext.data.reader.Reader
最后把解析好的数据转换成Ext.data.Model实例
我们可以自定义模型。
Ext.define( 'User' , {
extend: 'Ext.data.Model' ,
fields: [
{name: 'name' , type: 'string' },
{name: 'age' , type: 'int' , convert: null },
{name: 'phone' , type: 'string' },
{name: 'alive' , type: 'boolean' , defaultValue: true , convert: null }
],
changeName: function () {
var oldName = this .get( 'name' ),
newName = oldName + " The Barbarian" ;
this .set( 'name' , newName);
}
});
|
通常重复打开定义了Ext.data.Model的页面(就是加载js)会出现一个错误,大致意思是说,重复定义某个类了。
我们可以这样避免这个问题
Var exitModel=Ext.ModelManager.get(‘modelId’)
|
自定义模型之后就可以使用该模型来构造store
改写上面的store
Ext.define( 'ProductModel' , {
extend: 'Ext.data.Model' ,
fields: [{
name : 'primaryKey' ,
type : 'int'
},{
name : 'price' ,
type : 'float'
}, {
name : 'productName' ,
type : 'string'
}, {
name : 'title' ,
type : 'string'
}, {
name : 'buyDate' ,
type : 'date' ,
dateFormat : 'Y-m-d'
}]
});
var demoStore = Ext.create( 'Ext.data.Store' , {
model: 'ProductModel' ,
proxy : {
type : 'ajax' ,
url : '/read/demo/product.action' ,
reader : {
type : 'json' ,
root : 'root' ,
totalProperty : 'totalProperty'
}
},
autoLoad : true ,
pageSize : PAGESIZE
});
|
写上面的store,这样是不是比原来简单多了,而且更清晰了。
其实proxy属性也可以定义在model中。
只是通常不建议这么做。因为模型就是模型,他的数据代理是数据源赋予的。这样也能让我们的程序中,可以定义很多的模型,然后根据需要选择模型来搭配代理,从而为同一个模型赋予不同的后台读取操作。
针对store的各种方法合理使用,我会根绝需要在后续篇章中进行讲解。
注:本篇持续更新,首版日期:2012年7月10日15:57:23 第一版
PS:近期会出一套关于ExtJs动态form动态grid的相关教程。2012年7月10日16:19:54
分享到:
相关推荐
### Ext.data.Store的基本用法详解 #### 一、Ext.data.Store简介 `Ext.data.Store`是ExtJS框架中用于管理数据的核心组件之一。它主要负责数据的存储、加载、更新等操作,并且提供了多种方法来方便地处理这些数据。...
### ExtJs选中 `var editor = new Ext.ux.grid.RowEditor` 详解 在Web开发领域,特别是使用ExtJs框架进行复杂用户界面构建时,`RowEditor` 是一个非常实用的功能,它允许用户直接在表格行内编辑数据,极大地提高了...
EXTJS是一个强大的JavaScript框架,用于构建富客户端应用程序。其API详解涵盖了众多核心...EXTJS的API详尽且强大,这些只是其中一部分,实际使用中还有许多其他类和方法,为开发者提供了构建复杂Web应用的全面工具集。
var store = Ext.create('Ext.data.ArrayStore',{ fields:['company','price','change'], data:[ ['3mCo',71.72,0.02], ... ] }); ``` 创建了一个数组类型的存储器(`ArrayStore`),用于存储公司的名称、...
在`Default.aspx`中,我们可以创建一个YuiGrid实例,通过`Ext.data.Store`配置数据源,并设置`proxy`属性为`Ext.data.HttpProxy`,指定服务器端的处理方法。`Default.aspx.cs`和`.designer.cs`文件则负责处理服务器...
假设服务器端提供了一个 JSONP 格式的 API 接口,我们可以使用 ExtJS 的 `Ext.Ajax.request` 方法来请求这些数据: ```javascript Ext.Ajax.request({ url: 'http://example.com/data.json?callback=?', callback...
EasyJF是一家专注于Java开发工具和框架的公司,他们提供的ExtJS 2.0教程可能包含了更贴近中国开发者习惯的示例和解释,有助于国内开发者快速上手。 **五、示例代码和API文档** "EXT"这个文件名可能是指包含了ExtJS...
4. **Ext.data** - 数据是任何应用的核心,EXTJS 提供了强大的数据处理能力。这部分详细讲解了数据模型(Model)、数据读取(Proxy)、数据存储(Store)以及数据绑定(Data Binding)。这些组件协同工作,使得数据...
5. **reconfigure(Ext.data.Store store, Ext.grid.ColumnModel colModel)** - 说明:使用新的数据集和列模型重新配置表格。 - 示例:`reconfigure(new Ext.data.JsonStore(...), new Ext.grid.ColumnModel([...])...
### ExtJS核心API详解 #### 一、Ext类(第2页) - **概述**:Ext类是ExtJS的核心基础类之一,它提供了一系列用于简化DOM操作和浏览器兼容性问题的方法。 - **常用方法**: - `Ext.isEmpty(value)`:检查给定值是否...
这一系列章节详细介绍了如何使用Ext.data.Connection、Ext.data.Ajax进行异步数据请求,如何使用Ext.data.Record、Ext.data.DataProxy、Ext.data.DataReader和Ext.data.Store来管理和操作数据。 七、Ext.widgets...
### ExtJS 表格布局小例子详解 #### 一、简介 本文档旨在解析一个具体的 ExtJS 表格布局小例子,重点介绍其中涉及的数据存储、数据删除与添加的方法。ExtJS 是一款强大的 JavaScript 框架,用于构建交互式的前端...
### ExtJS GridPanel 使用详解及示例 #### 一、引言 在现代Web应用程序开发中,特别是基于ExtJS框架的应用程序中,`GridPanel`是处理表格数据展示的一个非常重要的组件。它不仅可以帮助开发者轻松地展示数据,还...
在Web开发领域,Ext_Js(简称ExtJS)是一种强大的JavaScript库,用于构建复杂的客户端应用。它提供了一套丰富的UI组件,使得开发者能够轻松地创建美观且功能强大的用户界面。其中,分页显示是一个常用的功能,在处理...
根据提供的文件信息,本文将详细解析ExtJS 4中如何处理不同类型的Store及与之相关的数据操作、模型定义以及前端展示等内容。 ### ExtJS 4中的Store与数据管理 #### Store概念简介 在ExtJS 4中,Store是用于存储...
**Ext.data.Connection**是对**Ext.lib.Ajax**的一个封装,它简化了使用Ajax的方式,使开发人员能够更加便捷地进行前后端数据交互。**Ext.data.Connection**的主要作用是在Ext.data.HttpProxy和Ext.data....
《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...
《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...
### ExtJS核心API详解 #### 1. Ext 类 (P.2) - **概述**:`Ext` 是 ExtJS 的核心命名空间,包含了全局的方法和属性。 - **用途**:提供了一个统一的入口来访问 ExtJS 库的功能,如创建组件、管理事件等。 - **常用...
1. **EXT基础**:这部分涵盖了EXT的基本概念和用法,如EXT对象,它是EXTJS框架的入口点,提供全局方法和配置。 2. **Array/Date/Function/Number/String**:这些章节详细解释了EXT如何扩展JavaScript的基础类型,...