2013-04-30 34 views
3

一個specialkey事件添加到所有領域如何添加一個specialkey事件到from.panel的各個領域?在這種形式面板上的一個方法,每場動作搜索我的商店我的商店名稱「S01I009001」, 任何人可以幫助我嗎? 道歉,因爲我的英語奇。ExtJS的4.1如何通過MVC

Ext.define('${pkgName}.v01i009001.SV01I00900104' , {  
    extend    : 'Ext.form.Panel', 
    alias    : 'widget.sv01i00900104', 
    requires   : ['Ext.form.field.Text'], 
    id     : 'sv01i00900104', 
    padding    : '0 0 0 0', 

    defaults: {   
     activeRecord : null, 
     border   : true, 
     layout   : 'hbox',   
     fieldDefaults : { 
      anchor  : '100%', 
      labelAlign : 'right' 
     } 
    }, 

    initComponent  : function(){   
     Ext.QuickTips.init(); 
     Ext.form.Field.prototype.msgTarget = 'qtip';   
     me   = this; 
     me.items = [{ 
      xtype     : 'fieldcontainer', 
      combineErrors   : true,      
      defaults    : { 
       layout   : 'fit', 
       margin   : '3 5 1 5', 
       hideLabel   : false,     
       labelAlign  : 'top' 
      }, 
      items: [{ 
       xtype    : 'numberfield', 
       name    : 'id', 
       fieldLabel  : 'REBATE ID:', 
       width    : 100,       
       minValue   : 0, 
       mouseWheelEnabled : false, 
       hideTrigger  : true, 
       decimalPrecision : 0, 
       keyNavEnabled  : false      
      },{ 
       xtype    : 'datefield', 
       name    : 'endDate', 
       fieldLabel  : 'End Date:', 
       flex    : 1, 
       format   : 'M d, Y', 
       altFormats  : 'd/m/Y|M d, Y h:i A', 
       id    : 'enddt-sv01i00900104', 
       vtype    : 'daterange', 
       startDateField : 'startdt-sv01i00900104'           
      }] 
     }];  
     me.callParent(arguments); 
    } 
}); 

回答

4

我認爲這是您的解決方案。如果我正確

init: function() { 

      this.control({'sv01i00900104 *' : { 
        specialkey: function (field, el) { 
         if (el.getKey() == Ext.EventObject.ENTER || el.getKey()==el.TAB){ 
          this.filter() 
         } 
        } 
       } 
    }); 
    },  

filter:function(){  
    var form  = Ext.getCmp('sv01i00900104').getForm(), 
    idValue   = form.findField('id').getValue(), 
    endDate   = form.findField('endDate').getValue(), 
    filters   = new Array();      
    if(idValue){ 
     filters.push({property:'id', value:idValue}); 
    }      
    if(endDate){ 
     filters.push({property:'endDate', value:endDate}); 
    } 
    var store = Ext.data.StoreManager.lookup(storeName); 
    store.clearFilter(); 
    store.loadPage(1, { 
     filters : array         
    }); 
}