Ext.data.Store是extjs中用来进行数据交换和数据交互的标准中间件,不管是Grid还是ComboBox,都是通过它 实现数据读取、类型转换、排序分页和搜索等操作的。

Ext.define('User', {
extend: 'Ext.data.Model',
fields: [
{name: 'loginname', type: 'string'},
{name: 'ip', type: 'string'}
]
});

Store既能够从本地数组中读取数据,也能够从server远程读取数据,当然还能够server代理读取,这些都得靠proxy实现,至于还有哪些区分,以及实现方式将再下一节阐述

为了更好的说清楚Store的使用方法,我们做例如以下样例

var store = Ext.create('Ext.data.Store', {
model: 'User',
proxy: {
type: 'memory',
data:[{loginname:'admin',ip:'192.168.1.2'},{loginname:'guest',ip:'192.168.1.5'}]
},
//autoLoad:true//配置了此项,表明数据集自己主动载入
});

一些经常用法

//载入数据
store.load();
//加入数据
store.add({loginname:'administrator.com',ip:'192.168.1.8'});
//读取数据
store.each(function(record){
console.info(record.get('loginname'));
alert(record.get('loginname'));
});
//过滤
//store.filter("loginname", /\.com$/);依据单个属性域(field)过滤:
store.filter([
{property: "loginname", value: /\.com$/},
{filterFn: function(item) { return item.get("ip") == '192.168.1.5'; }}
]);
//查找某条记录
var record = store.find('loginname','guest');
//获取store中第一条记录的快捷方法.
var record = store.first();
//获取指定index处的记录
var record = store.getAt(2);
//获取store中记录的数量
var count = store.getCount;
//获取store中最后一条记录的快捷方法
var record = store.last();

后台读取数据

var store = Ext.create('Ext.data.Store', {
model: 'User',
pageSize:5,//每页显示条数,默认25
proxy: {
type: 'ajax',
url: 'jsonServer.jsp',
reader: {
type: 'json',
root: 'rows',
totalProperty: 'total'
},
writer: {
type: 'json'
}
}
});

怎么获取数据

store.load({
scope: this,
callback: function(records, operation, success) {
//获取总记录数
//console.info(store.getCount());这个来源于对记录的统计
console.info(store.getTotalCount());//这个来源于后台传过来的total
//获取当前页
console.info(store.currentPage);
Ext.each(records,function(record){
console.info(record.get('loginname'));
})
}
}); //显示第二页数据
store.loadPage(2);
//显示上一页数据
store.previousPage();
//显示下一页数据
store.nextPage();

后台数据,我以jsp的形式提供

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%
String[] persons = new String[10];
persons[0] = "{loginname : 'tom' , ip : '192.168.1.1'}";
persons[1] = "{loginname : 'jack' , ip : '192.168.1.2'}";
persons[2] = "{loginname : 'mary' , ip : '192.168.1.3'}";
persons[3] = "{loginname : 'jone' , ip : '192.168.1.4'}";
persons[4] = "{loginname : 'ada' , ip : '192.168.1.5'}";
persons[5] = "{loginname : 'alex' , ip : '192.168.1.6'}";
persons[6] = "{loginname : 'lucy' , ip : '192.168.1.7'}";
persons[7] = "{loginname : 'jms' , ip : '192.168.1.8'}";
persons[8] = "{loginname : 'smile' , ip : '192.168.1.9'}";
persons[9] = "{loginname : 'somnus' , ip : '192.168.1.10'}"; int pageSize = Integer.parseInt(request.getParameter("page").toString());
int limit = Integer.parseInt(request.getParameter("limit").toString()); System.out.println("pageSize="+pageSize+ " limit="+limit);
StringBuffer personName = new StringBuffer();
personName.append("{");
personName.append("total : 10,");
personName.append("rows : [");
int min = (pageSize-1)*limit;
int max = pageSize*limit;
if(max > 10){
max = 10;
}
for(int i = min ; i < max ; i++){
personName.append(persons[i]);
if(i < max - 1){
personName.append(",");
}
};
personName.append("]");
personName.append("}");
response.getWriter().write(personName.toString());
%>

最后介绍一个Store的一个属性:storeId

当前store对象的唯一标识ID. 当此值存在时, 当前Store将被注冊到Ext.data.StoreManager中, 从而能够在别处轻松创建.

获取方式

var store = Ext.data.StoreManager.lookup('simpsonsStore')

ExtJs4学习(七)MVC中的Store的更多相关文章

  1. ExtJs4学习MVC中的Store

    Ext.data.Store是extjs中用来进行数据交换和数据交互的标准中间件,无论是Grid还是ComboBox,都是通过它实现数据读取.类型转换.排序分页和搜索等操作的. 1 2 3 4 5 6 ...

  2. C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例

    C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...

  3. MVC中使用Entity Framework 基于方法的查询学习笔记 (三)

    紧接上文,我们已经学习了MVC数据上下文中两个常用的类,这两个类承载着利用函数方式进行数据查询的全部内容,我们既然已经了解了DbSet<TEntity> 是一个泛型集合,并且实现了一些接口 ...

  4. MVC中使用Entity Framework 基于方法的查询学习笔记 (一)

    EF中基于方法的查询方式不同于LINQ和以往的ADO.NET,正因为如此,有必要深入学习一下啦.闲话不多说,现在开始一个MVC项目,在项目中临床学习. 创建MVC项目 1.“文件”--“新建项目”-- ...

  5. (转)Maven学习总结(七)——eclipse中使用Maven创建Web项目

    孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(七)——eclipse中使用Maven创建Web项目 一.创建Web项目 1.1 选择建立Maven Project 选择File -&g ...

  6. 在MVC中实现和网站不同服务器的批量文件下载以及NPOI下载数据到Excel的简单学习

    嘿嘿,我来啦,最近忙啦几天,使用MVC把应该实现的一些功能实现了,说起来做项目,实属感觉蛮好的,即可以学习新的东西,又可以增加自己之前知道的知识的巩固,不得不说是双丰收啊,其实这周来就开始面对下载在挣 ...

  7. ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则

    ASP.NET MVC 学习笔记-7.自定义配置信息   ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...

  8. MVC中使用Entity Framework 基于方法的查询学习笔记 (二)

    解释,不解释: 紧接上文,我们在Visual Studio2012中看到系统为我们自动创建的视图(View)文件Index.cshtml中,开头有如下这句话: @model IEnumerable&l ...

  9. 在 ASP.NET MVC 中使用 HTTPS (SSL/TLS) -- 学习

    在 ASP.NET MVC 中使用 HTTPS (SSL/TLS) IS 7如何实现http重定向https HTTPS 升级指南

随机推荐

  1. CesiumJS - 3D Tiles BIM

    CesiumJS - 3D Tiles BIM eryar@163.com 1. Introduction CesiumJS is an open-source JavaScript library ...

  2. Virtual Reality: Immersive Yourself In Your 3D Mockup

    ESI's Virtual Reality software solution IC.IDO is an exceedingly powerful immersive engineering solu ...

  3. HBase 数据库检索性能优化策略

    HBase 数据表介绍 HBase 数据库是一个基于分布式的.面向列的.主要用于非结构化数据存储用途的开源数据库.其设计思路来源于 Google 的非开源数据库"BigTable" ...

  4. jquery08

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  5. Python: PS 滤镜特效 -- Marble Filter

    本文用 Python 实现 PS 滤镜特效,Marble Filter, 这种滤镜使图像产生不规则的扭曲,看起来像某种玻璃条纹, 具体的代码如下: import numpy as np import ...

  6. JavaScript学习总结(11)——JS常用函数(二)

    37. getElementsByClassName ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 function getElementsByClassName( ...

  7. JavaScript学习总结(10)——实用JS代码大全

    事件源对象  event.srcElement.tagName  event.srcElement.type 捕获释放  event.srcElement.setCapture();   event. ...

  8. hdu4336Card Collector 概率dp+状态压缩

    //给n个卡片每次出现的概率,求全部卡片都出现的须要抽的次数的期望 //dp[i]表示在状态的情况下到全部的卡片都出现的期望 //dp[i] = 1 + p1*dp[i] + ${p2[j]*dp[i ...

  9. vue ---webpack 打包上线

     先来描述一下期间遇到的问题有哪些: 1.打包后将 dist 文件夹和 index.html 放到 tomcat,在浏览器中访问时,出现空白页,f12 提示 404. 2.打包好的静态资源均是绝对路径 ...

  10. cf1051F. The Shortest Statement(最短路/dfs树)

    You are given a weighed undirected connected graph, consisting of nn vertices and mm edges. You shou ...