/** * Page Size Plugin for Paging Toolbar * * @author wjc */ Ext.ux.PageSizePlugin = Ext.extend(Ext.form.ComboBox, { store: new Ext.data.SimpleStore({ fields: ['text', 'value'], data: [['5', 5], ['10', 10], ['15', 15], ['20', 20], ['25', 25], ['50', 50], ['100', 100]] }), mode: 'local', displayField: 'text', valueField: 'value', allowBlank: false, triggerAction: 'all', width: 50, maskRe: /[0-9]/ , beforeText:'显示', afterText:'条/页', init: function(paging) { paging.on('render', this.onInitView, this); }, onInitView: function(paging) { paging.insert(paging.items.length-2,'-', this.beforeText, this, this.afterText); function GetCookie(cookieName){ var cookies = document.cookie; var cStartIndex = -1, cEndIndex = -1; cookieName = cookieName + "="; cStartIndex = cookies.indexOf(cookieName); if(cookies.length && (-1 != cStartIndex)) { cEndIndex = cookies.indexOf(";", cStartIndex + cookieName.length) if(-1 == cEndIndex) { cEndIndex = cookies.length; } return cookies.substring(cStartIndex + cookieName.length, cEndIndex); } return null; }; var pageSize = GetCookie("PageSizePlugin_pageSize"); if (pageSize!=null && pageSize!=""){ this.setValue(pageSize); }else{ this.setValue(paging.pageSize); } this.on('select', this.onPageSizeChanged, paging); this.on('specialkey', function(combo, e) { if(13 === e.getKey()) { this.onPageSizeChanged.call(paging, this); } }); }, onPageSizeChanged: function(combo) { function SetCookie(cookieName, value){ cookieValue=value; var date = new Date(); date.setTime (date.getTime() + 3600000000); //设置过期时间 document.cookie = cookieName + "=" + cookieValue + ";expires=" + date.toGMTString()+";path=/"; //设置cookie值 }; this.pageSize = parseInt(combo.getRawValue(), 10); SetCookie("PageSizePlugin_pageSize",this.pageSize); this.doLoad(0); } });