IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ext JS / Sencha Discussion :

Extend sur DateField == 1 seule instance possible ?


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Extend sur DateField == 1 seule instance possible ?
    Bien le bonjour,

    Voici le trouble de mes premiers déboires (car premiers pas) dans l'héritage d'objets avec ExtJs.

    Le contexte est deux onglets avec pour chaqu'un 4 DateField (Date de début, date de fin [2 fois]). Au départ, coder les 8 DateField c'est sympa mais pourquoi pas aller côtoyer l'héritage ?

    Première initiation correcte mais le souci résidant me dépasse quand même.

    Tout d'abord, voici le code de mes datefields "personnalisés" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    var today = new Date();
     
                var dateFieldStats = Ext.extend(Ext.form.DateField, {
                    initComponent: function() {
                        this.id = this.idGraph;
                        this.name = this.idGraph;
                        this.divDisplay1 = this.divDisplay1;
                        this.divDisplay2 = this.divDisplay2;
                        this.fieldLabel = 'Sélectionnez la date';
                        this.editable = false;
                        this.showToday = false;
                        this.columnWidth = .25;
                        dateFieldStats.superclass.initComponent.apply(this);
                    }
                });
     
                var dateFieldBeginStats = Ext.extend(dateFieldStats, {
                    initComponent: function() {
                        this.value = today.format('01/m/y');
     
                        dateFieldBeginStats.superclass.initComponent.apply(this);
                    },
                    listeners: {
                        scope: this,
                        select: function(dateFielObj, dateObj) {
                            alert('begin');
                            //display_graph(this.value,Ext.getCmp(this.id).value, this.divDisplay1);
                            //display_graph(this.value,Ext.getCmp(this.id).value, this.divDisplay2);
                        }
                    }
                });
     
                var dateFieldEndStats = Ext.extend(dateFieldStats, {
                    initComponent: function() {
                        this.value = today.format('d/m/y');
     
                        dateFieldEndStats.superclass.initComponent.apply(this);
                    },
                    listeners: {
                        scope: this,
                        select: function(dateFielObj, dateObj) {
                            alert('end');
                            //display_graph(Ext.getCmp(this.id).value,this.value, this.divDisplay1);
                            //display_graph(Ext.getCmp(this.id).value,this.value, this.divDisplay2);
                        }
                    }
                });
    Quelques brèves explications :
    - dateFieldStats : objet le plus global contenant les petits customs de départ.
    - dateFieldBeginStats / dateFieldEndStats : objets hérités qui assigne leur valeur à afficher dans l'input + que faire sur le onSelect (opérationnel, là n'est pas le souci).

    De ce fait, j'intègre ces datefield dans un conteneur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    //...
    ,
                                {
                                    layout: 'column',
                                    border: false,
                                    style: {
                                        paddingTop: '5px'
                                    },
                                    items: [
                                        //new panelDate(htmlBeginDate),
                                        new dateFieldBeginStats(arguments),
                                        //new panelDate(htmlEndDate),
                                        new dateFieldEndStats(arguments)
                                    ]
                                },//...
    Résultat de ce bout de code là : Je n'ai qu'un seul dateField qui s'affiche !
    Même si je mets deux fois le new dateFieldBeginStats(arguments), je n'en ai qu'un également.

    Voici ma question : Qu'est-ce qui bloque quant au fait de ne pas pouvoir effectuer plusieurs instances de ces objets ? Auriez-vous une suggestion ou un autre chemin à aller voir ?

    Cordialement,

    Steve.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Résolu !

    Le souci venait du id qui était le même. Et ExtJs n'a pas l'air d'aimer vraiment ça.

    Voilà, une bonne prog à tous !

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. 2 instances tomcat - 1 seul webapps : possible ?
    Par coucou78 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 27/08/2009, 09h54
  2. Réponses: 2
    Dernier message: 31/01/2009, 20h49
  3. 2 evenements sur un seul onclick..possible ou pas
    Par michka999 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/08/2006, 16h01
  4. [C#] Une seule instance : focus sur l'appi lancée
    Par annalady dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/04/2006, 11h51
  5. Réduire les fenêtres sur un seul moniteur : possible ?
    Par mat087 dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 08/11/2005, 00h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo