PagingToolbar PageSizePlugin

3020 단어 ext

/**  
* 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);    
     }
 
 });


좋은 웹페이지 즐겨찾기