- 浏览: 471875 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (190)
- ExtJS (40)
- JavaScript (16)
- Java设计模式 (13)
- Html (10)
- Tomcat (9)
- myeclipse (5)
- JSP (5)
- CSS (10)
- JS/CSS (1)
- windows (12)
- Navicat For MySQL (1)
- struts2 (6)
- Spring2.0 (1)
- Java反射机制 (5)
- hibernate (9)
- java (17)
- B/SWeb完美打印方案 (1)
- 数据库相关 (4)
- java web报表 (1)
- 报表打印 (2)
- java泛型 (1)
- Servlet (2)
- SVN (7)
- Log4j (0)
- android (3)
最新评论
-
kation733:
斯蒂芬斯蒂芬多萨法阿凡达是否阿萨德
同时开启两个Tomcat -
BlueBing:
一路的夏天 写道楼主的代码会报错吧!在前面的时候String ...
使用Java反射机制遍历实体类的属性和类型 -
ying890:
非常感谢!
Ext JS中文乱码解决方案 -
zhylandroid:
谢谢了,对我很有帮助
DatabaseMetaData开发实务(上) -
wendy.wujing:
maxHttpHeaderSize="8192&qu ...
查看Tomcat配置的端口
Ext.data.Store是EXT中用来进行数据交换和数据交互的标准中间件,无论是Grid还是ComboBox,都是通过它实现数据读取、类型转换、排序分页和搜索等操作的。
Ext.data.Store中有一个Ext.data.Record数组,所有数据都存放在这些Ext.data. Record实例中,为后面的读取和修改操作做准备。
一、Ext.data.Store基本应用
在使用之前,首先要创建一个Ext.data.Store的实例,如下面的代码所示。
var data = [
['boy', 0],
['girl', 1]
];
var store = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(data),
reader: new Ext.data.ArrayReader({}, PersonRecord)
});
store.load();
每个store最少需要两个组件的支持,分别是proxy和reader,proxy用于从某个途径读取原始数据,reader用于将原始数据转换成Record实例。
这里我们使用的是Ext.data.MemoryProxy和Ext.data.ArrayReader,将data数组中的数据转换成对应的几个PersonRecord实例,然后放入store中。store创建完毕之后,执行store.load()实现这个转换过程。
经过转换之后,store里的数据就可以提供给Grid或ComboBox使用了,这就是Ext.data. Store的最基本用法。
二、Ext.data.Store对数据进行排序
Ext.data.Store提供了一系列属性和函数,利用它们对数据进行排序操作。
可以在创建Ext.data.Store时使用sortInfo参数指定排序的字段和排序方式,如下面的代码所示。
var store = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(data),
reader: new Ext.data.ArrayReader({}, PersonRecord),
sortInfo: {field: 'name', direction: 'DESC'}
});
这样,在store加载数据之后,就会自动根据name字段进行降序排列。对store使用store.setDefaultSort('name','DESC');也会达到同样效果。
也可以在任何时候调用sort()函数,比如store.sort('name', 'DESC');,对store中的数据进行排序。
如果我们希望获得store的排序信息,可以调用getSortState()函数,返回的是类似{field: "name", direction: " DESC"}的JSON对象。
与排序相关的参数还有remoteSort,这个参数是用来实现后台排序功能的。当设置为remoteSort:true时,store会在向后台请求数据时自动加入sort和dir两个参数,分别对应排序的字段和排序的方式,由后台获取并处理这两个参数,在后台对所需数据进行排序操作。remoteSort:true也会导致每次执行sort()时都要去后台重新加载数据,而不能只对本地数据进行排序。
三、Ext.data.Store加载及显示数据
store创建好后,需要调用load()函数加载数据,加载成功后才能对store中的数据进行操作。load()调用的完整过程如下面的代码所示。
store.load({
params: {start:0,limit:20},
callback: function(records, options, success){
Ext.Msg.alert('info', '加载完毕');
},
scope: store,
add: true
});
params是在store加载时发送的附加参数。
callback是加载完毕时执行的回调函数,它包含3个参数:records参数表示获得的数据,options表示执行load()时传递的参数,success表示是否加载成功。
Scope用来指定回调函数执行时的作用域。
Add为true时,load()得到的数据会添加在原来的store数据的末尾,否则会先清除之前的数据,再将得到的数据添加到store中。
一般来说,为了对store中的数据进行初始化,load()函数只需要执行一次。如果用params参数指定了需要使用的参数,以后再次执行reload()重新加载数据时,store会自动使用上次load()中包含的params参数内容。
如果有一些需要固定传递的参数,也可以使用baseParams参数执行,它是一个JSON对象,里面的数据会作为参数发送给后台处理,如下面的代码所示。
store.baseParams.start = 0;
store.baseParams.limit = 20;
为store加载数据之后,有时不需要把所有数据都显示出来,这时可以使用函数filter和filterBy对store中的数据进行过滤,只显示符合条件的部分,如下面的代码所示。
filter( String field, String/RegExp value, [Boolean anyMatch],
[Boolean caseSensitive] ) : void
filter()函数的用法与之前谈到的find()相似,如下面的代码所示。
store.filter('name', 'boy');
对应的filterBy()与findBy()类似,也可以在自定义的函数中实现各种复杂判断,如下面的代码所示。
store.filterBy(function(record) {
return record.get('name') == 'girl' && record.get('sex') == 1;
});
如果想取消过滤并显示所有数据,那么可以调用clearFilter()函数,如下面的代码所示。
store.clearFilter();
如果想知道store上是否设置了过滤器,可以通过isFiltered()函数进行判断。
四、Ext.data.Store其他功能
除了上面提到的数据获取、排序、更新、显示等功能外,store还提供了其他一些功能函数。
collect( String dataIndex, [Boolean allowNull], [Boolean bypassFilter] ) : Array
collect函数获得指定的dataIndex对应的那一列的数据,当allowNull参数为true时,返回的结果中可能会包含null、undefined或空字符串,否则collect函数会自动将这些空数据过滤掉。当bypassFilter参数为true时,collect的结果不会受查询条件的影响,无论查询条件是什么都会忽略掉,返回的信息是所有的数据,如下面的代码所示。
alert(store.collect('name'));
这样会获得所有name列的值,示例中返回的是包含了'boy'和'girl'的数组。
getTotalCount()用于在翻页时获得后台传递过来的数据总数。如果没有设置翻页,get- TotalCount()的结果与getCount()相同,都是返回当前的数据总数,如下面的代码所示。
alert(store.getTotalCount());
indexOf(Ext.data.Record record)和indexOfId(String id)函数根据record或record的id获得record对应的行号,如下面的代码所示。
alert(store.indexOf(store.getAt(1)));
alert(store.indexOfId(1001));
loadData(object data, [Boolean append])从本地JavaScript变量中读取数据,append为true时,将读取的数据附加到原数据后,否则执行整体更新,如下面的代码所示。
store.loadData(data, true);
Sum(String property, Number start, Number end):Number用于计算某一个列从start到end的总和,如下面的代码所示。
alert(store.sum('sex'));
发表评论
-
功能: 用户点击grid的表头菜单显示/隐藏列,拉动列、重新刷新页面后保留。
2011-01-05 11:56 2364var grid = new Ext.grid.GridPa ... -
fieldSet组件的基本用法 将fieldSet上的边框去掉或者改变内边距
2010-05-29 09:58 10549先把fieldSet简单的回忆下: fieldset:对表单进 ... -
ext grid 没有数据时不显示横向滚动条的解决办法
2010-05-28 14:18 2663EXT Grid 没有数据时不显示横向滚动条的解决办法: t ... -
ExtJS中动态设置TextField的readOnly属性
2010-04-28 14:49 2421假设 textField, 它的 id = 'textFiel ... -
Ext监控回车按键
2010-03-06 11:25 2401listeners : {specialkey : funct ... -
Ext.Ajax类
2010-03-05 10:35 1922Ext.Ajax类Ext.Ajax类是一个简单而清晰的XHR封 ... -
Ext JS 键映射:键盘作为第一类操作对象
2010-02-26 15:07 2294Ext.KeyMap Ext提供几个不同的组件,支持键盘导航, ... -
如何在服务器端 读取Ext.ux.UploadDialog上传的文件?
2009-12-10 17:09 2224问题已经解决。 1。要导入 commons.io.jar包 ... -
ext 多文件上传控件 Ext.ux.UploadDialog 使用中的问题
2009-12-10 17:03 3327Ext.ux.UploadDialog 像ext一 ... -
Ext.data专题五:常用proxy之MemoryProxy
2009-08-26 14:44 3954MemoryProxy只能从JavaScript对象获得数据, ... -
Ext.data专题三:Ext.data.Record
2009-08-26 14:40 5345Ext.data.Record就是一个设 ... -
Ext.data专题二:Ext.data.Connection
2009-08-26 14:38 1432Ext.data.Connection是对Ext.li ... -
Ext.data专题一:Ext.data简介
2009-08-26 14:36 1283Ext.data在命名空间中定义了一系列store、reade ... -
深入浅出Ext JS:数据存储与传输
2009-07-11 15:40 248110.4 Ext.data.Store Ex ... -
EXT核心API详解(十一)_Ext.data.Store/GroupingStore/JsonStore/SimpleStore
2009-07-03 17:17 5652Ext.data.Storestore是一个为 ... -
《Ext实战》节选:自定义单元格的显示格式
2009-07-02 14:49 1338有时候,需要在Grid中显示一个链接,或根据数字的大小显示不同 ... -
ext afteredit详解
2009-07-02 09:48 2416grid.on("afteredit",a ... -
Ext.form.ComboBox 属性详解及使用方法介绍和级联使用
2009-06-27 16:18 2454Ext.form.ComboBox 属性详解(见注释)及使用方 ... -
ext_comboBox二级级联下拉框
2009-06-27 16:11 1810Ext.onReady(function(){ ... -
ExtJS 给textfield赋值的方法总结
2009-06-25 15:21 3323var value="值"; (1) f ...
相关推荐
在创建完`Ext.data.Store`实例后,执行`store.load()`方法会触发数据转换的过程。`MemoryProxy`从内存中读取原始数据,`ArrayReader`则负责将这些数据转换为`PersonRecord`实例,最后这些实例会被存储在`store`中。...
环境:Window XP Sp2、Tomcat 6.0、...关于Ext.data.Store类,我们可以看出:该框架提供了客户端缓存的功能--这对于我们框架系统是非常有帮助的。本示例代码注释非常详细。 阅读对象:需要使用Ext框架进行Web开发的人员
在处理数据时,`Ext.data.Store`是一个至关重要的组件,它用于存储和管理数据,可以与各种数据源进行交互。当我们需要从XML文档中提取数据并加载到`Store`时,就涉及到`Ext.data.reader.Xml`。这篇博客文章《Ext....
### Ext.data专题详解 #### 一、Ext.data概述 **Ext.data** 是一个重要的JavaScript库组件,用于处理数据传输和管理。它定义了一系列的核心概念,包括 **Store**、**Reader** 和 **Proxy**,这些都是Ext.data的...
this.store.reload(); }; var dataview = new Ext.DataView({ store: store, tpl : tpl, id: 'phones', itemSelector: 'li.phone', overClass : 'phone-hover', singleSelect: true, multiSelect : ...
关于这个原因有很多种,我只说下我遇到的 我这样 写Store来复用的 代码如下: DocStore = Ext.extend(Ext.data.Store,{ initComponent:function(){ this.proxy = new Ext.data.HttpProxy({url:this.url}); this....
store.load(); ``` 然后通过`store`变量来访问和操作Store。但在使用`extend`进行类继承时,可能会将Store的定义放在一个新的组件内,例如一个ComboBox: ```javascript Leangle.form.combo.ColorComboBox = Ext....
var store = new Ext.data.Store({ // ... }); // 定义列模型 var cm = new Ext.grid.ColumnModel([ {header: 'Name', width: 200, dataIndex: 'name', editor: new Ext.form.TextField()}, {header: 'Age', ...
1. `store`:定义数据存储对象,可以是Ext.data.TreeStore,用于保存树形结构的数据。 2. `displayField`:指定显示在下拉框中的字段,通常是从树节点数据中提取的属性。 3. `valueField`:选择后记录的值,通常是树...
store: Ext.create('Ext.data.Store', { fields: ['name', 'value'], proxy: { type: 'ajax', url: 'data.json', // 本地数据文件路径 reader: { type: 'json', rootProperty: 'items' } }, autoLoad: ...
30. **Ext.data.Store类**:数据存储,管理数据集,与DataProxy和DataReader交互。 31. **Ext.data.GroupingStore类**:分组数据存储,支持数据的分组显示。 32. **Ext.data.SimpleStore类**:简单的数据存储,...
代码如下: var Store = Ext.create(‘Ext.data.Store’, { pageSize: pageSize, model: ‘Ext.data.Model名称’, autoLoad: false, proxy: { type: ‘ajax’, url: ‘请求路径’, getMethod: function(){ return ...
本示例探讨如何利用Ext JS中的`Ext.form.field.ComboBox`组件,结合Java后端和JSON数据格式,来创建这样一个功能。 `Ext.form.field.ComboBox`是Ext JS框架中一个强大的组件,它提供了下拉列表的功能,可以用于创建...
- **Ext.data**:数据管理模块,包括数据存储、模型定义、数据交换等。 - **Ext.grid**:提供网格视图,支持数据分页、排序、过滤等功能。 - **Ext.form**:表单组件,支持多种输入控件及验证功能。 - **Ext....
Ext.data是一个专门处理数据的模块,它包含了store、reader和proxy等组件,这些组件协同工作以确保数据在前端和后端之间高效、灵活地流动。Store是数据容器,负责存储和管理数据;Reader则负责解析从服务器接收到的...
store.on("update", function(store, record, operation) { // 这里可以编写发送数据到服务器的逻辑 Ext.Ajax.request({ url: "updateuser.aspx", params: { data: Ext.encode(record.data), // 将数据编码成...
- `Ext.data.TreeStore`是用于管理树形数据的存储,它继承自`Ext.data.Store`。 - 数据源可以通过`root`属性配置,该属性是一个对象,包含了树的第一级节点数据。 - 也可以通过`proxy`属性指定远程数据源,如...
可以使用`store.filter()`方法,或者在store配置中设置`autoFilter: true`,然后监听`keyup`事件来实时更新过滤条件。 ```javascript // 监听搜索框的keyup事件 var searchField = Ext.create('Ext.form.field.Text...
- `Ext.data.Store.remove(record)`:移除记录。 #### 三十六、Ext.data.GroupingStore类(第32页) - **概述**:Ext.data.GroupingStore类实现了分组数据存储。 - **常用方法**: - `new Ext.data.GroupingStore...
3. Ext.data.Store:数据存储,与数据源进行交互,支持远程数据加载和本地数据存储。 4. Ext.grid.GridPanel:表格组件的主要类,包含了数据绑定、列配置、行处理等功能。 5. Ext.layout.ContainerLayout:容器布局...