60 lines
1.6 KiB
JavaScript
60 lines
1.6 KiB
JavaScript
|
|
|
|
Ext.define('Ext.ux.SimplePagingToolbar', {
|
|
extend: 'Ext.toolbar.Paging',
|
|
alias: 'widget.simplepagingtoolbar',
|
|
|
|
cls: 'x-toolbar-paging',
|
|
|
|
// Override parent
|
|
initComponent: function () {
|
|
var me = this;
|
|
|
|
me.store = Ext.Object.merge({}, me.store, {
|
|
getCount: function () {
|
|
return me.f_recordCount;
|
|
},
|
|
currentPage: me.f_pageIndex + 1
|
|
});
|
|
|
|
me.callParent();
|
|
},
|
|
|
|
// Override parent
|
|
getPagingItems: function() {
|
|
var items = this.callParent();
|
|
// Remove refresh and separator items.
|
|
return items.slice(0, items.length - 2);
|
|
},
|
|
|
|
// Override parent
|
|
getPageData: function () {
|
|
var fromRecord = 0, toRecord = 0;
|
|
if (this.f_databasePaging) {
|
|
fromRecord = (this.f_pageIndex * this.f_pageSize) + 1;
|
|
toRecord = fromRecord + this.f_pageSize - 1;
|
|
} else {
|
|
fromRecord = this.f_startRowIndex + 1;
|
|
toRecord = this.f_endRowIndex + 1;
|
|
}
|
|
if (toRecord > this.f_recordCount) {
|
|
toRecord = this.f_recordCount;
|
|
}
|
|
|
|
return {
|
|
total: this.f_recordCount,
|
|
currentPage: this.f_pageIndex + 1,
|
|
pageCount: this.f_pageCount <= 0 ? 1 : this.f_pageCount,
|
|
fromRecord: fromRecord,
|
|
toRecord: toRecord
|
|
};
|
|
},
|
|
|
|
f_update: function (configs) {
|
|
Ext.Object.merge(this, configs);
|
|
this.store.currentPage = this.f_pageIndex + 1;
|
|
this.onLoad();
|
|
}
|
|
|
|
});
|