项目中的store
var store = new Ext.data.GroupingStore({
proxy : new Ext.data.HttpProxy({
url : '<%=rootpath%>/YhxxServlet'
}),
baseParams: {
method : 'browsePageData'
},
reader: new Ext.data.JsonReader({
totalProperty : 'totalProperty',
root: 'root',
fields : record
}),
sortInfo : {
field : 'YH_BH',
direction : 'ASC'
}
});
store传参的几种方法
//第一种
var store = new Ext.data.Store({
baseParams: {
params1 : '1',
params2 : '2'
}
});
//第二种
var params = {start:0,limit:limit};
store.load({params: params});
//第三种
store.load({
params:{
start:0,
limit:10
}
});
//第四种
store.baseParams=params;
1.Ext.data.Store
1.1.获取本地数据
var store = new Ext.data.Store({
/*
proxy的作用是通过内存获取原始数据,然后将获取的数据交给对应的读取器进行处理
MemoryProxy只能从Javascirp对象获取数据,可以直接把数组或者JSON和XML格式的数据交给他处理
*/
proxy : new Ext.data.MemoryProxy([
['tom',18],
['cat',20]
]),
//用于将原始数据转换成record实例
reader : new Ext.data.ArrayReader({
fields : [
{name : 'name',type : 'string'},
{name : 'age',type : 'int'}
]
})
});
store.load();
1.2.去后台读取数据,后台必须返回JSON格式的数据,HttpProxy不支持跨域
如果Json包含root,index.jsp中JsonReader中必须写入配置项root : 'root'
list.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String json = "["+
"{name:'tom', age:18},"+
"{name:'team', age:18},"+
"{name:'cat', age:25},"+
"{name:'jock',age:25}"+
"]";
System.out.print(json);
response.getWriter().write(json);
%>
index.jsp
var store = new Ext.data.Store({
/*
proxy的作用是通过http获取原始数据,然后将获取的数据交给对应的读取器进行处理
HttpProxy使用HTTP协议,通过Ajax去后台读取数据,构造它时需要设置url:'list.jsp'参数
*/
proxy : new Ext.data.HttpProxy({
url: 'list.jsp'
}),
reader : new Ext.data.JsonReader({
fields : [
{name : 'name',type : 'string'},
{name : 'age',type : 'int'}
]
})
});
store.load();
2.Ext.data.ArrayStore读取本地数组
var store = new Ext.data.ArrayStore({
fields: ['name','age'],
data: [
['tom',18],
['cat',20]
]
});
3.Ext.data.SimpleStore()读取本地数组
SimpleStore=Store+MemoryProxy+ArrayReader
SimpleStore是不需要写load()方法
var store = new Ext.data.SimpleStore({
data : [
['tom',18],
['cat',25]
],
fields : [
{name : 'name',type : 'string'},
{name : 'age',type : 'int'}
]
});
4.Ext.data.JsonStore从后台读取JSON数据
JsonStore=Store+HttpProxy+JsonReader
JsonStore需要写load()方法
list:jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String json = "{root:["+
"{name:'tom', age:18},"+
"{name:'cat',age:25}"
+"]}";
System.out.print(json);
response.getWriter().write(json);
%>
index.jsp:
var store = new Ext.data.JsonStore({
url : 'list.jsp',
root : 'root',
fields : [
{name : 'name',type : 'string'},
{name : 'age',type : 'int'}
]
});
store.load();
5.Ext.data.GroupingStore对数据分组
store.groupBy('sex');//重新对sex进行分组
store.clearGrouping();//清除分组
如果使用GroupingStore就要给grid设置view配置项
view: new Ext.grid.GroupingView({
enableGroupingMenu:false,
groupByText:'分组',
showGroupsText:'显示',
hideGroupedColumn:true,
forceFit:true,
groupTextTpl: '{text} ({[values.rs.length]}条数据)'
}),
5.1.分组本地数据
var store = new Ext.data.GroupingStore({
data : [
['tom',18,'男'],
['cat',25,'女'],
['team',18,'男'],
['jock',26,'女']
],
reader : new Ext.data.ArrayReader({
fields : [
{name : 'name',type : 'string'},
{name : 'age',type : 'int'},
{name : 'sex',type : 'string'}
]
}),
groupField : 'age',//设置分组字段
sortInfo : {
field : 'age',
direction : 'desc'
}
});
5.2.分组后台JSON数据
list:jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String json = "{root:["+
"{name:'tom', age:18,sex:'男'},"+
"{name:'team', age:18,sex:'女'},"+
"{name:'cat', age:25,sex:'男'},"+
"{name:'jock',age:25,sex:'女'}"
+"]}";
System.out.print(json);
response.getWriter().write(json);
%>
index.jsp
var store = new Ext.data.GroupingStore({
url : 'list.jsp',
reader: new Ext.data.JsonReader({
root: 'root',
fields : [
{name : 'name',type : 'string'},
{name : 'age',type : 'int'},
{name : 'sex',type : 'string'}
]
}),
groupField : 'age',//设置分组字段
sortInfo : {
field : 'age',
direction : 'desc'
}
});
store.load();