DateMenu.js
上传用户:shuoshiled
上传日期:2018-01-28
资源大小:10124k
文件大小:2k
源码类别:

中间件编程

开发平台:

JavaScript

  1. /*!  * Ext JS Library 3.0.0  * Copyright(c) 2006-2009 Ext JS, LLC  * licensing@extjs.com  * http://www.extjs.com/license  */ /**
  2.  * @class Ext.menu.DateMenu
  3.  * @extends Ext.menu.Menu
  4.  * A menu containing a {@link Ext.DatePicker} Component.
  5.  * @xtype datemenu
  6.  */
  7.  Ext.menu.DateMenu = Ext.extend(Ext.menu.Menu, {
  8.     /** 
  9.      * @cfg {Boolean} enableScrolling
  10.      * @hide 
  11.      */
  12.     enableScrolling: false,
  13.     
  14.     /** 
  15.      * @cfg {Boolean} hideOnClick
  16.      * False to continue showing the menu after a date is selected, defaults to true.
  17.      */
  18.     hideOnClick: true,
  19.     
  20.     /** 
  21.      * @cfg {Number} maxHeight
  22.      * @hide 
  23.      */
  24.     /** 
  25.      * @cfg {Number} scrollIncrement
  26.      * @hide 
  27.      */
  28.     /**
  29.      * @property picker
  30.      * @type DatePicker
  31.      * The {@link Ext.DatePicker} instance for this DateMenu
  32.      */
  33.     cls: 'x-date-menu',
  34.     
  35.     /**
  36.      * @event click
  37.      * @hide
  38.      */
  39.     
  40.     /**
  41.      * @event itemclick
  42.      * @hide
  43.      */
  44.     initComponent: function(){
  45.         this.on('beforeshow', this.onBeforeShow, this);
  46.         if(this.strict = (Ext.isIE7 && Ext.isStrict)){
  47.             this.on('show', this.onShow, this, {single: true, delay: 20});
  48.         }
  49.         Ext.apply(this, {
  50.             plain: true,
  51.             showSeparator: false,
  52.             items: this.picker = new Ext.DatePicker(Ext.apply({
  53.                 internalRender: this.strict || !Ext.isIE,
  54.                 ctCls: 'x-menu-date-item'
  55.             }, this.initialConfig))
  56.         });
  57.         this.picker.purgeListeners();
  58.         Ext.menu.DateMenu.superclass.initComponent.call(this);
  59.         this.relayEvents(this.picker, ["select"]);
  60.         this.on('select', this.menuHide, this);
  61.         if(this.handler){
  62.             this.on('select', this.handler, this.scope || this);
  63.         }
  64.     },
  65.     menuHide: function() {
  66.         if(this.hideOnClick){
  67.             this.hide(true);
  68.         }
  69.     },
  70.     onBeforeShow: function(){
  71.         if(this.picker){
  72.             this.picker.hideMonthPicker(true);
  73.         }
  74.     },
  75.     onShow: function(){
  76.         var el = this.picker.getEl();
  77.         el.setWidth(el.getWidth()); //nasty hack for IE7 strict mode
  78.     }
  79.  });
  80.  Ext.reg('datemenu', Ext.menu.DateMenu);