J'utilise le sélecteur de date mais je suis un peu confus au sujet de l'endroit où il décide de placer le sélecteur de date sur l'écran. Sur un écran c'est bien mais sur un autre il se bloque derrière un objet flash. Puis-je le forcer à attacher dans le coin inférieur droit de l'endroit où le bouton date est cliqué? Je regardais dans firebug et il semble avoir juste des variables aléatoires gauche et en bas dans CSS, dont je ne suis pas sûr d'où ils sont tirés. Mercipositionnement du sélecteur de date dans extjs
Répondre
Avant de tenter de repositionner le menu du champ de date, essayez de définir la propriété 'wmode' de l'objet Flash sur 'opaque'. Selon la façon dont l'objet Flash est intégré, cela devrait permettre au menu d'apparaître au-dessus.
Si vous êtes désireux encore de forcer une nouvelle position d'alignement du menu puis essayez redéfinissant la méthode onTriggerClick de l'instance 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?');
}
});
le coin supérieur gauche de cette align du menu avec le coin inférieur droit du champ. Consultez la documentation de Ext.Element.alignTo pour les autres valeurs possibles à transmettre au second paramètre de la méthode show.
C'est un peu un hack car il en résulte que la méthode show du menu est appelée deux fois, mais l'alternative est de réécrire sur TriggerClick pour passer votre position choisie sur le premier appel.
Dans la version> = 4.0.0, utilisez la propriété pickerAlign.
Ex:
{
xtype: 'datefield',
fieldLabel: 'Date',
pickerAlign: 't-br?'
}
Conseils de owlness de voir les docs sur Ext.Element.alignTo pour une explication de la façon dont fonctionne pickerAlign est toujours valide.
Parfait! Solution simple et discrète avec une bonne alternative. Wmode a travaillé un régal^_ ^ –