PagingToolbarResizer.js的使用注意事项! (转)
2015-08-14 10:29
405 查看
GRID应该是EXTJS中使用最频繁的组件了,通过JSON可以实现分页显示。
笔者通过使用Ext.ux.plugin.PagingToolbarResizer插件,可以实现客户自定义每页显示的记录数(类似的插件还比较多)
插件代码:
------------
插件使用方式:
...
---------------
使用界面:
实际GRID在使用中,经常会进行查询操作,如果处理不当回出现,用户定义的分页记录发生改变
笔者是这样处理的
1:定义每页显示的记录数量至一变量
2:在插件PagingToolbar的change事件进行监听,改变分页变量值
代码如下:
var limit=20;
...
bbar:new Ext.PagingToolbar(
...
{"change":function (t,p)
{limit=this.pageSize;
}
},
...
ds.removeAll();
start=0;
ds.reload({params:start:start,limit:limit}})
...
笔者通过使用Ext.ux.plugin.PagingToolbarResizer插件,可以实现客户自定义每页显示的记录数(类似的插件还比较多)
插件代码:
Ext.namespace('Ext.ux.plugin'); Ext.ux.plugin.PagingToolbarResizer = Ext.extend(Object, { options: [5, 10, 15, 20, 25, 30, 50, 75, 100, 200, 300, 500, 1000], mode: 'remote', displayText: '记录数', prependCombo: false, constructor: function(config){ Ext.apply(this, config); Ext.ux.plugin.PagingToolbarResizer.superclass.constructor.call(this, config); }, init : function(pagingToolbar) { var comboStore = this.options; var combo = new Ext.form.ComboBox({ typeAhead: false, triggerAction: 'all', forceSelection: true, selectOnFocus:true, lazyRender:true, editable: false, mode: this.mode, value: pagingToolbar.pageSize, width:50, store: comboStore, listeners: { select: function(combo, value, i){ pagingToolbar.pageSize = comboStore[i]; pagingToolbar.doLoad(Math.floor(pagingToolbar.cursor/pagingToolbar.pageSize)*pagingToolbar.pageSize); } } }); var index = 0; if (this.prependCombo){ index = pagingToolbar.items.indexOf(pagingToolbar.first); index--; } else{ index = pagingToolbar.items.indexOf(pagingToolbar.refresh); pagingToolbar.insert(++index,'-'); } pagingToolbar.insert(++index, this.displayText); pagingToolbar.insert(++index, combo); if (this.prependCombo){ pagingToolbar.insert(++index,'-'); } //destroy combobox before destroying the paging toolbar pagingToolbar.on({ beforedestroy: function(){ combo.destroy(); } }); } });
------------
插件使用方式:
bbar:new Ext.PagingToolbar( { pageSize:limit, store:ds, displayInfo:true, emptyMsg:"没有登记文件", plugins : [new Ext.ux.plugin.PagingToolbarResizer( {options : [20, 40,60,80,100,200,500,1000], prependCombo: true})], displayMsg:'显示第 {0} 条到 {1} 条文件,一共 {2} 个文件' }),
...
---------------
使用界面:
实际GRID在使用中,经常会进行查询操作,如果处理不当回出现,用户定义的分页记录发生改变
笔者是这样处理的
1:定义每页显示的记录数量至一变量
2:在插件PagingToolbar的change事件进行监听,改变分页变量值
代码如下:
var limit=20;
...
bbar:new Ext.PagingToolbar(
...
{"change":function (t,p)
{limit=this.pageSize;
}
},
...
ds.removeAll();
start=0;
ds.reload({params:start:start,limit:limit}})
...
相关文章推荐
- javascript事件委托,事件代理,元素绑定多个事件之练习篇
- Gson解析数组和list容器
- javascript之DOM操作
- JSBinding+SharpKit / 更新的原理
- JavaScript中对象类型判断的几种方法
- js unix时间戳转换
- js 复制网页内容,兼容各浏览器
- jsp页面显示登入时间
- jsp/servlet相关技术 (二) --- jsp的原理、注释、声明、脚本等
- 实例讲解js中的预编译
- Chrome 控制台 如何调试javascript
- Google Chrome调试js代码
- JSON 数据格式
- 一个jsp的注册界面
- js实现选中复选框文字变色的方法
- 如何学习3D Three.js 3D引擎
- js 表格合并
- jsp页面foreach循环,表单提交,批量处理数据,
- JavaScript 属性介绍
- avalon js实现仿微博拖动图片排序