日期选择器在extjs中的定位

时间:2010-01-11 22:46:31

标签: javascript ajax extjs datepicker

我正在使用日期选择器,但我对它决定将日期选择器放在屏幕上的位置感到有些困惑。在一个屏幕上它很好但在另一个屏幕上它被卡在一个闪光对象后面。我可以强制它附加到点击日期按钮的地方的右下角吗?我正在查看firebug,它似乎只有CSS中随机的左下角变量,我不知道它们从哪里拉出来。感谢

2 个答案:

答案 0 :(得分:1)

在尝试重新定位日期字段的菜单之前,请尝试将Flash对象的'wmode'属性设置为'opaque'。根据Flash对象的嵌入方式,这应该允许菜单显示在其上方。

如果您仍想强制菜单的新对齐位置,请尝试覆盖DateField实例的onTriggerClick方法:

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方法的第二个参数的其他可能值。

这有点像黑客,因为它导致菜单的show方法被调用两次,但另一种方法是重写onTriggerClick以在第一次调用时传递你选择的位置。

答案 1 :(得分:0)

在版本> = 4.0.0中使用pickerAlign属性。

例如:

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

来自owlness的关于在Ext.Element.alignTo上查看文档以获取有关pickerAlign如何工作的解释的建议仍然有效。