最近在做一个项目,开发文本阅读功能,搜索后需要定位到关键字首次匹配的行(以及行所在的页),前端是用ext写的,分页组件用到PagingToolbar,但貌似这个组件在第一次加载数据时只能从第一条开始,即只能先显示第一页,而需求是可能的任一页,所以就自己修改了下Ext3PagingToolbar.js,其实改动很小的。
改写后PagingToolbar.js如下:
(function() {
var T = Ext.Toolbar;
Ext.PagingToolbar = Ext.extend(Ext.Toolbar, {
pageSize :20,
displayMsg :'Displaying {0} - {1} of {2}',
emptyMsg :'No data to display',
beforePageText : '页',
afterPageText : '页共 {0}页',
firstText :'第一页',
prevText :'上一页',
nextText :'下一页',
lastText :'最后页',
refreshText: 'Refresh',
cursorinit :0,
initComponent : function(){
var pagingItems = [this.first = new T.Button({
tooltip: this.firstText,
overflowText: this.firstText,
iconCls: 'x-tbar-page-first',
disabled: true,
handler: this.moveFirst,
scope: this
}), this.prev = new T.Button({
tooltip: this.prevText,
overflowText: this.prevText,
iconCls: 'x-tbar-page-prev',
disabled: true,
handler: this.movePrevious,
scope: this
}), '-', this.beforePageText,
this.inputItem = new Ext.form.NumberField({
cls: 'x-tbar-page-number',
allowDecimals: false,
allowNegative: false,
enableKeyEvents: true,
selectOnFocus: true,
listeners: {
scope: this,