позиционирование выбора даты в extjs - PullRequest
1 голос
/ 12 января 2010

Я использую средство выбора даты, но меня немного смущает вопрос о том, где он решает разместить средство выбора даты на экране. На одном экране все нормально, а на другом застревает, прячась за флеш-объектом. Могу ли я принудительно прикрепить его к правому нижнему углу места, где нажата кнопка даты? Я искал в firebug, и кажется, что в CSS просто есть случайные переменные left и bottom, которые я не уверен, откуда они взяты. Спасибо

Ответы [ 2 ]

1 голос
/ 12 января 2010

Прежде чем пытаться изменить положение меню поля даты, попробуйте установить свойство 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 для передачи выбранной вами позиции при первом вызове.

0 голосов
/ 31 октября 2013

В версии> = 4.0.0 используйте свойство pickerAlign.

Ex:

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

Советы от советов по поводу просмотра документов на Ext.Element.alignTo для объяснения того, как работает pickerAlign, по-прежнему действительны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...