var store = new Ext.data.JsonStore({
url : "supplier_queryListUp",
root : "rows",
totalProperty:"totalProperty",//总条数
fields: [{
name: 'id'
},{
name: 'supplier'
},{
name: 'linkmanName'
},{
name: 'linkmanSex'
},{
name: 'phoneCode'
},{
name: 'address'
},{
name: 'remark'
}]
});
store.setBaseParam("factorQuery",false);
//读取数据
store.load({
params:{start:0, limit:_pageSize}
});
root:'rows'
{rows:{{id:1,supplier:2},{},,{}}}
json格式是这样的 意思是rows里的每一个子元素就对应的一行
ext会自动添加到一行上面
totalProperty:
这个是数据总条数 用来进行分页的 只要在json中传入
{totalProperty:10}
就可以了
totalProperty 与 rows是同级的数组元素 可以拼在一起
分页查询
text : "查看",
iconCls :"cwms-query",
tooltip : "根据条件查询人员档案信息",
listeners:{
"click":function(){
var _tbar = grid.getTopToolbar();
var _name = _tbar.items.get(1).getValue();
var _link_name = _tbar.items.get(4).getValue();
var _link_phone = _tbar.items.get(7).getValue();
grid.getStore().baseParams={'supplier.supplier':_name,
'supplier.linkmanName':_link_name,
'supplier.phoneCode':_link_phone,
'factorQuery':true};
store.load();
}
}
这里需要注意的是查询后不是onload 而是load onload 是把已有的值发过去 是不会替换内容的 所以如果用onload 你只能查询一次 这个问题也困扰了我很久 而load是每次都会替换新值 这里分页的时候也会自动保存内容 这些内容是可以在服务器端接收的 清空条件也是一样的原理
转换成字符串 前提json包一定要导好 这里就不提供了 到处有下载
public static String getJsonList(PageBean pageBean){
JSONArray jsonArray = JSONArray.fromObject(pageBean.getData());
String result = "{totalProperty:"+pageBean.getCout()+",rows:"+jsonArray+"}";
return result;
}
pageBean.getCout() 是总条数
下面是重点 使数据能够翻页的
ext表格查询时会将start 这个参数发到服务器 这是起始条数
拿到这一个 很容易就可以判断页了
public static int PAGE_SIZE = 12;
public static int getCurrentPage(int start){
int currentPage = 1;
if(start!=0){
currentPage = start/PAGE_SIZE+1;
}
return currentPage;
}
就能返回一个当前页数了 页数都能返回了 翻页就解决了
最后总结一下 服务器接收的参数 只有start 和条件查询参数
服务器发送的 只有查到数据 与总条数
其他的都不用管 EXT帮你全自动运行
小弟摸索了很久 拿出来分享一下 在网上找了很多都不全 这个应该算是很全了吧