ExtJs_关于combobox的那些分页二三事

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

  先是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<ShopInfo> 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()<end) {
17             end=list.size();
18         }
19
20         List<ShopStore> li=new ArrayList<ShopStore>();
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是本地数据源  分页要跟后台交互所以用remote
10     triggerAction:‘all‘, //这个是做匹配用的 问题不大
11     pageSize:10,  //分页量
12     readOnly:true,  //我版本3.1.1 这个属性貌似没用,但是放在这里不影响啊
13     listWidth:200  //下拉列表的宽度   跟本来combobox的宽度没关系

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

  叶落星辰  W

时间: 2024-10-28 11:21:06

ExtJs_关于combobox的那些分页二三事的相关文章

初识zabbix需了解的二三事

简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案: zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题: 监控平台的组成 数据采集 --> 数据存储 --> 数据展示和分析 --> 报警 常见监控实现方案对比 cacti 优点:利用rrdtool绘图,图形美观: 缺点:报警功能薄弱,不适合大规模监控场景: nagios 优点:报警功能强大: 缺点:只关心正常与否的状态,数

Ubuntu12.04 Version 安装二三事

Ubuntu12.04 Version 安装二三事 安装输入法 因为是全英的系统,所以,中文输入法是一定要装的!!! 介绍一:(和我电脑配置很像,from http://vb2005xu.iteye.com/blog/1748575) Ubuntu上的输入法主要有小小输入平台(支持拼音/二笔/五笔等),Fcitx,Ibus,Scim等.其中Scim和Ibus是输入法框架. 在Ubuntu的中文系统中自带了中文输入法,通过Ctrl+Space可切换中英文输入法.这里我们主要说下Ubuntu英文系统

iOS7下滑动返回与ScrollView共存二三事

[转载请注明出处] = =不是整篇复制就算注明出处了亲... iOS7下滑动返回与ScrollView共存二三事 [前情回顾] 去年的时候,写了这篇帖子iOS7滑动返回.文中提到,对于多页面结构的应用,可以替换interactivePopGestureRecognizer的delegate以统一管理应用中所有页面滑动返回的开关,比如在UINavigationController的派生类中 1 //我是一个NavigationController的派生类 2 - (id)initWithRootV

转手项目二三事

程序员下班之余除了自己充电学习,一般都期待搞个私活做做,这样的方式给自己加班仿佛有了一层光环:自动回血又加经验.我也是今年才开始做一些个人的小案子,都是朋友的朋友介绍的,没什么价.只是这样的过程还是比较好的:慢慢建立自己的客户,提高自己的代码效率,驱动你去研究一些你不熟悉东西,了解别的行业,积累人脉关系.但遇到转手项目这种案子 营养不多,麻烦却不少. 上次一个朋友介绍一个接口的小差,大概一共就是二十几个方法,还没开始做就打了1000元给我.当时心想:写几个方法给这么多,太多了吧.按照他说的 一两

Linux基础回顾(2)——Linux系统分区二三事

问题来自Linux教材,答案自我整理难免会有不足之处.这是我Linux期末的总结 1. 一块硬盘上可以有几种类型的分区?各自可以有多少个?(各个分区能安装操作系统吗?) 硬盘分区有三种类型的分区:主分区,扩展分区,逻辑分区:一个硬盘最多能划分4个主分区,或者3个主分区加上一个扩展分区,扩展分区上可以划分多个逻辑分区(最多20个).能安装操作系统. 2.用户能否在安装过程中创建扩展分区呢? 分区工具在文件系统类型中没有提供扩展(extended)分区类型,即用户不能根据需要不能手工创建扩展分区.安

老曹眼中的研发管理二三事

这是在gitchat上的第一次分享,中生代联手gitchat在做研发管理的专题活动,作为先锋,抛砖引玉. 关于管理,必然会谈到业界先贤德鲁克先生对管理的定义. 管理就是界定企业的使命,并激励和组织人力资源去实现这个使命.界定使命是企业家的任务,而激励与组织人力资源是领导力的范畴,二者的结合就是管理. 这是对企业管理的阐述,管理是一种实践,其本质不在于'知'而在于'行':其验证不在于逻辑,而在于成果:其唯一权威就是成就. 而我们多数人不是企业家,更多是基层的管理者,面对的一个或几个小型的组织.尤其

关于线性模型你可能还不知道的二三事(二、也谈民主)

目录 1 如何更新权值向量?2 最小均方法(LMS)与感知机:低效的民主3 最小二乘法:完美的民主4 支持向量机:现实的民主5 总结6 参考资料 1 如何更新权值向量? 在关于线性模型你可能还不知道的二三事(一.样本)中我已提到如何由线性模型产生样本,在此前提下,使用不同机器学习算法来解决回归问题的本质都是求解该线性模型的权值向量W.同时,我们常使用线性的方式来解决分类问题:求解分隔不同类别个体的超平面的法向量W.不论回归还是分类,都是求解向量W,而求解的核心思想也英雄所见略同:向量W倾向于指向

1007: 童年生活二三事

台州acm:1007: 童年生活二三事 Description Redraiment小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去. 但年幼的他一次只能走上一阶或者一下子蹦上两阶. 现在一共有N阶台阶,请你计算一下Redraiment从第0阶到第N阶共有几种走法. Input 输入包括多组数据. 每组数据包括一行:N(1≤N≤40). 输入以0结束. Output 对应每个输入包括一个输出. 为redraiment到达第n阶不同走法的数量. Sample Input 1 2 0 Sample

程序猿二三事之Java基础--Java SE 5增加的特性--语法篇(一)

程序猿二三事之Java基础–Java SE 5增加的特性–语法篇(一) [ TOC ] 为什么是Java SE 5? 目前已经到了JDK-8u74了,JDK7的主版本已经于2015年4月停止公开更新. 那为什么还要来说Java/JDK5呢? Java SE在1.4(2002)趋于成熟,随着越来越多应用于开发企业应用,许多框架诞生于这个时期或走向成熟. Java SE 5.0的发布(2004)在语法层面增加了很多特性,让开发更高效,代码更整洁. 自动装箱/拆箱.泛型.注解.for循环增强.枚举.可