2014-09-22 8 views
9

Wenn Sie auf das Dropdown-Menü klicken, um einzelne Monate/Jahre auszuwählen, verschwindet der Dialog, als würde ich versuchen wegzuschnappen.ExtJS 5 xtype Datumsfeld funktioniert nicht bei der Auswahl von Monat oder Jahr

Geige: https://fiddle.sencha.com/#fiddle/9m6

Ext.onReady(function() { 
    Ext.create('Ext.form.Panel', { 
     title: 'Simple Form', 
     bodyPadding: 5, 
     width: 350, 
     // The fields 
     defaultType: 'textfield', 
     items: [{ 
      xtype: 'datefield', 
      fieldLabel: 'Start Date', 
      id: 'startDate' 
     }], 
     renderTo: Ext.getBody() 
     }); 
    }); 

Dies hat in ExtJs 5.1.0.107

EXTJS-15968 Date Picker nach Klick auf Monat Picker verschwinden fest.

http://docs.sencha.com/extjs/5.1/whats_new/release_notes.html

+0

die wesentliche Teile des Codes Bitte addieren. Wenn der von Ihnen angegebene Link nicht mehr funktioniert, ist der Code nicht verfügbar. – Pred

+0

Scheint wirklich seltsam, Sie sollten einen Fehler mit Sencha einreichen. Hier ist eine noch kleinere Reproduktion https://fiddle.sencha.com/#fiddle/amr 'Ext.widget ({xtype: 'datefield', renderTo: Ext.getBody()});' –

+0

Als Workaround können Sie verwenden 'ctrl + left/right', um die Monate zu wechseln und' ctrl + up/down' um die Jahre zu wechseln –

Antwort

5

Es stellte sich ein Problem erwiesen, in der Tat in Ext.Js v 5.0.1. http://www.sencha.com/forum/showthread.php?289825

Lösung mit überwiegender Ext.picker.Date Klasse für mich gearbeitet:

Ext.define('EXTJS-14607.picker.Date', { 
    override: 'Ext.picker.Date', 


    runAnimation: function(isHide) { 
     var me = this, 
      picker = this.monthPicker, 
      options = { 
       duration: 200, 
       callback: function() { 
        picker.setVisible(!isHide); 
        // See showMonthPicker 
        picker.ownerCmp = isHide ? null : me; 
       } 
      }; 


     if (isHide) { 
      picker.el.slideOut('t', options); 
     } else { 
      picker.el.slideIn('t', options); 
     } 
    }, 


    hideMonthPicker: function(animate) { 
     var me = this, 
      picker = me.monthPicker; 


     if (picker && picker.isVisible()) { 
      if (me.shouldAnimate(animate)) { 
       me.runAnimation(true); 
      } else { 
       picker.hide(); 
       // See showMonthPicker 
       picker.ownerCmp = null; 
      } 
     } 
     return me; 
    }, 


    showMonthPicker: function(animate) { 
     var me = this, 
      el = me.el, 
      picker; 


     if (me.rendered && !me.disabled) { 
      picker = me.createMonthPicker(); 
      if (!picker.isVisible()) { 
       picker.setValue(me.getActive()); 
       picker.setSize(el.getSize()); 
       picker.setPosition(-el.getBorderWidth('l'), -el.getBorderWidth('t')); 
       if (me.shouldAnimate(animate)) { 
        me.runAnimation(false); 
       } else { 
        picker.show(); 
        // We need to set the ownerCmp so that owns() can correctly 
        // match up the component hierarchy, however when positioning the picker 
        // we don't want it to position like a normal floater because we render it to 
        // month picker element itself. 
        picker.ownerCmp = me; 
       } 
      } 
     } 
     return me; 
    } 
}); 
Verwandte Themen