博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ExtJs_关于combobox的那些分页二三事
阅读量:6839 次
发布时间:2019-06-26

本文共 2985 字,大约阅读时间需要 9 分钟。

  近来项目需求,在新增或查询的时候有一个标签对象需要使用下拉菜单,但是数据可多可少的.少了的时候看起来还不错,紧凑一点.但是一旦躲起来看着就那么别扭了.人说百度不可靠,我发现这话真没错,想着做个分页来解决这玩意儿,没想到百度出来的结果催人泪下啊.好多不负责任的博主什么的直接复制粘贴给链接就结束了,弄得我一愣一愣的.靠天靠地不如靠自己这真是老祖宗的至理名言.为了方便以后检阅自己的成果,记录一下.

  先是JS内  var shop_store=new Ext.data.Store();

1     shop_store=new Ext.data.Store({
//新建数据源 2 reader : new Ext.data.JsonReader({ 3 totalProperty : "totalCount", 4 root : 'result' 5 }, Ext.data.Record.create([{ 6 name : 'id' 7 }, { 8 name : 'text' 9 }])),10 proxy : new Ext.data.HttpProxy({11 url : Ext.getDom('root').value + '/helper/helper!shopCombox.do'//数据查询地址12 })13 });

  新建数据源,获取相应后台查询数据.大小由后台组装完成

  这是Java后台查询部分,怎么查就不详述了.就记着怎么分就好了

1   public void shopCombox() throws Exception { 2         List
list = dataCacheUtil.getShopList();//调用DataCacheUtil模版方法查询所有数据 3 4 if (list.size()==0) {
//防止空值异常 5 printJson("{\"result\":[],\"totalCount\":0}" ); 6 return; 7 } 8 9 int start = Integer.parseInt(this.getRequest().getParameter("start")); //开始数 10 int limit = Integer.parseInt(this.getRequest().getParameter("limit")); //间隔数11 12 PrintWriter out = this.getResponse().getWriter();13 int totalcount = list.size();14 15 int end=start+limit;//防止尾页越界16 if (list.size()
li=new ArrayList
();21 ShopStore s=null;22 23 for (int i = start; i < end; i++) {24 s=new ShopStore();25 s.setId(list.get(i).getId());26 s.setText(list.get(i).getShopname());27 li.add(s);28 }29 30 JSONArray jsonObject = JSONArray.fromObject(li);31 JSONObject reqObject = new JSONObject();32 reqObject.element("result", jsonObject);33 int totalPageCount = (int) Math.ceil((double) totalcount / 10);34 reqObject.element("totalPageCount", totalPageCount);35 reqObject.element("countPerPage", this.getRequest().getParameter("limit"));36 reqObject.element("totalCount", totalcount);// pages为总页数。37 out.print(reqObject.toString());38 39 }

  就像普通分页一样,其实ExtJs在这方面做的很不赖.每次调用方法就查询start 到 start+limit的数据.然后返回给前台展示在下拉框里.

  

1     xtype : 'combo', 2     fieldLabel : '店铺名称', 3     valueField : 'id', 4     displayField : 'text', 5     hiddenName : 'shopid', 6     name : 'shopid', 7     store : shop_store, 8     //上面都是老生常谈的玩意儿     9     mode:'remote',  //local是本地数据源  分页要跟后台交互所以用remote10     triggerAction:'all', //这个是做匹配用的 问题不大11     pageSize:10,  //分页量12     readOnly:true,  //我版本3.1.1 这个属性貌似没用,但是放在这里不影响啊13     listWidth:200  //下拉列表的宽度   跟本来combobox的宽度没关系

  妥妥完美分页啊~美中不足的是我忽然想到,要是有十万个待选数据...- -# 还是奉劝客户用手动输入的吧.

 

  叶落星辰  W

转载于:https://www.cnblogs.com/may26/p/4224003.html

你可能感兴趣的文章
Unix系统介绍
查看>>
照片切换
查看>>
求矩阵的局部极大值(15)
查看>>
Eclipse详细设置护眼背景色和字体颜色并导出
查看>>
Android Gradle 构建工具(Android Gradle Build Tools)是什么?
查看>>
AOP和IOC的作用
查看>>
Apache的Rewrite规则详细介绍
查看>>
ruby环境sass编译中文出现Syntax error: Invalid GBK character错误解决方法
查看>>
go语言的selector
查看>>
ipa 打包遇到的坑
查看>>
正则表达式
查看>>
js之操作JSON数据
查看>>
Design Hit Counter
查看>>
BZOJ 3576 江南乐
查看>>
NAT网络地址转换
查看>>
DateTime格式化问题
查看>>
杭电2097--Sky数
查看>>
杭电1754--I Hate It(线段树)
查看>>
AS莫名报错 Error:Could not download junit.jar (junit:junit:4.12): No cached version available
查看>>
Kendo UI 简单使用
查看>>