Използвам инструмента за избор на дата, но съм малко объркан къде решава да постави инструмента за избор на дата на екрана. На един екран е добре, но на друг засяда, криейки се зад флаш обект. Мога ли да го принудя да се прикрепи към долния десен ъгъл на мястото, където се щраква върху бутона за дата? Търсих в firebug и изглежда просто има произволни леви и долни променливи в CSS, които не съм сигурен откъде са изтеглени. Благодаря
позициониране на инструмента за избор на дата в extjs
Отговори (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, за да премине избраната от вас позиция при първото извикване.
Във версия >= 4.0.0 използвайте свойството pickerAlign.
Ex:
{
xtype: 'datefield',
fieldLabel: 'Date',
pickerAlign: 't-br?'
}
Съветът от owlness за разглеждане на документите на Ext.Element.alignTo за обяснение как работи pickerAlign е все още валиден.