позициониране на инструмента за избор на дата в extjs

Използвам инструмента за избор на дата, но съм малко объркан къде решава да постави инструмента за избор на дата на екрана. На един екран е добре, но на друг засяда, криейки се зад флаш обект. Мога ли да го принудя да се прикрепи към долния десен ъгъл на мястото, където се щраква върху бутона за дата? Търсих в firebug и изглежда просто има произволни леви и долни променливи в CSS, които не съм сигурен откъде са изтеглени. Благодаря


person V_H    schedule 11.01.2010    source източник


Отговори (2)


Преди да опитате да промените позицията на менюто на полето за дата, опитайте да зададете свойството 'wmode' на Flash обекта на 'opaque'. В зависимост от това как е вграден Flash обектът, това трябва да позволи на менюто да се появи над него.

Ако все още искате да наложите нова позиция на подравняване на менюто, опитайте да замените метода onTriggerClick на екземпляра DateField:

new Ext.form.DateField({
    fieldLabel: 'Choose a date',
    onTriggerClick: function() {
        Ext.form.DateField.prototype.onTriggerClick.call(this);
        this.menu.show(this.el, 'tl-br?');
    }
});

Това подравняване е горният ляв ъгъл на менюто с долния десен ъгъл на полето. Вижте документацията на Ext.Element.alignTo за други възможни стойности за предаване на втория параметър на метода show.

Това е малко хак, тъй като води до извикване на метода за показване на менюто два пъти, но алтернативата е пренаписване на onTriggerClick, за да премине избраната от вас позиция при първото извикване.

person owlness    schedule 12.01.2010
comment
Перфектно! Просто и ненатрапчиво решение с добра алтернатива. Wmode сработи страхотно ^_^ - person V_H; 14.01.2010

Във версия >= 4.0.0 използвайте свойството pickerAlign.

Ex:

{
    xtype: 'datefield',
    fieldLabel: 'Date',
    pickerAlign: 't-br?'
}

Съветът от owlness за разглеждане на документите на Ext.Element.alignTo за обяснение как работи pickerAlign е все още валиден.

person Solway01    schedule 30.10.2013