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 :

Textfield dans un compositeField


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 112
    Par défaut Textfield dans un compositeField
    Bonjour,

    J'essaie de construire un compositeField dans un formulaire.
    Ce compositeField comprend un textField suivi d'un DisplayField, (3 fois)
    Les exemples sont assez clairs ; mais je ne parviens pas à faire apparaitre le fieldlabel du textField comme il semble possible de le faire.

    Voici la potion de code :
    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
     
    {items:[
    	{xtype:'fieldset',title: 'Charges',collapsible:false, autoHeight:true, layout:'column',
                items:[
    		{xtype: 'compositefield', columnWidth:.33, layout: 'form',
    		items: [
    		{xtype:'textfield',	fieldLabel: 'Charge prévisionnelle', width:50, name: 'C_P',value: '0'},
    	       {xtype: 'displayfield', value: 'j/h'}	]
    		},
    		{xtype: 'compositefield',  columnWidth:.33, layout: 'form',
    			items :[ {
                   xtype:'textfield',fieldLabel: 'Charge actuelle', width:50, name: 'C_A',value: '0'},
                   {xtype: 'displayfield', value: 'j/h'}			]
    		},
    		{xtype: 'compositefield', columnWidth:.33,layout: 'form',
    		items :[
                      {xtype:'textfield',fieldLabel: 'Reste à Faire',width:50, name: 'RAF',value: '0'}, 
                    {xtype: 'displayfield', value: 'j/h'}				]
    		}
    	 ]				}
    	 				]	
    			},
    Quelqu'un sait-il comment faire ?

    merci de votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 112
    Par défaut
    Compte tenu de l'absence de réponse, je vais reformuler ma question.

    Dans mon formulaire, quand je positionne des champs "Textfield", j'ai bien un label qui figure au dessus. Quand je mets ces Textfields dans un "compositeField", le label disparait.

    Est-ce un bug connu ou est-ce que je m'y prends mal ?

    merci de vos lumières.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 25
    Par défaut
    Salut,

    J'ai eu le même problème que toi. Le soucis apparemment c'est que si le formulaire est caché au départ que tu le rends visible ensuite aucun affichage dans les compositefield.

    Sinon ton code marche, je l'ai essayé comme tu l'as écris et comme ça aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    {xtype:'fieldset',title: 'Charges',collapsible:false, autoHeight:true, layout:'column',
                items:[
    				{xtype: 'compositefield', layout: 'form',
    					items: [
    						{xtype:'textfield',	fieldLabel: 'Charge prévisionnelle', width:50, name: 'C_P',value: '0'},
    						{xtype: 'displayfield', value: 'j/h'},	
    						{xtype:'textfield',fieldLabel: 'Charge actuelle', width:50, name: 'C_A',value: '0'},
    						{xtype: 'displayfield', value: 'j/h'},
    						{xtype:'textfield',fieldLabel: 'Reste à Faire',width:50, name: 'RAF',value: '0'}, 
    						{xtype: 'displayfield', value: 'j/h'}				
    					]
    				}
    			]				
    		}
    et mon formulaire, c'est ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    labelWidth: 100,
    	border:false,
    	layout:'form',
    	//hidden:true,
    	autoHeight: true,
    	width:300,
    	defaults: {anchor:'0'},
    	bodyStyle:'padding:10px',
    	defaultType: 'textfield',
    	labelAlign: 'top',
    	buttonAlign: 'center',
    J'espère que ça pourra t'aider.

    Edit :

    A priori, il s'agirait d'un bug. Ma solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Ext.override(Ext.form.FormPanel, { show : function(){ 
    	this.getVisibilityEl().removeClass('x-hide-' + this.hideMode); 
    	this.getComponent('identite').show(); 
    	if(Ext.isWebKit) {this.getVisibilityEl().show();}
    }});
    Identite étant l'id de mon compositeField. Le reste je l'ai pris d'un forum US que j'ai mis à ma sauce.

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 112
    Par défaut
    Merci BudKiller ... et pardon de ne pas avoir répondu plus tôt (je n'y croyais plus !)

    je vais tester ça tout de suite.
    encore merci

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 112
    Par défaut
    Salut BudKiller,

    Bon bah j'ai testé et ... les FieldLabels n'apparaissent toujours pas.
    j'ai utilisé ton Ext.override et j'ai appelé la fonction show sur mon formPanel : était-ce bien ce que je devais faire ou n'ai-je rien compris ?

    A noter tout de même que dans mon problème initial, je n'avais pas caché le formulaire au départ.

    Cordialement
    MadMax

  6. #6
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    As tu tenté d'intervenir sur le onRender

    J'ai eu un peu le même genre de pb un panel
    j'utilisais une string dans ma définition pour positionner le Layout
    (c'était dans une ancienne version aujourd'hui je sais )
    du coup au moment du rendu pas de layout attendu

    alors que si je mettais une instance de layout ça marchait.

    en fait dans le rendu contrairement à ce que disait la doc il ne créait pas le Layout du coup j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        ,onRender:function(ct, position) {
            Ext.app.DayTopPanel.superclass.onRender.call(this, ct, position);
            if (this.layout) {
                if(typeof this.layout == 'string'){
                    this.layout = new Ext.Container.LAYOUTS[this.layout.toLowerCase()](this.layoutConfig);
                }
                this.setLayout(this.layout);
                this.doLayout();
            }
    ...
    A+JYT

Discussions similaires

  1. [FLASH MX2004] Ou créer mon TextField dans clip ?
    Par Dermochelys dans le forum Flash
    Réponses: 24
    Dernier message: 05/12/2006, 01h01
  2. ajout de textfield dans une frame
    Par babarincairo dans le forum iReport
    Réponses: 1
    Dernier message: 11/09/2006, 14h30
  3. un textfield dans une page web à l'aide d'une servlet
    Par amelA dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 14/05/2006, 18h54
  4. Comment inserer le contenu de TextField dans textArea
    Par Tootsi dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 15/01/2006, 13h33
  5. [SWT]TextField dans SWT
    Par Albarad dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 21/06/2004, 12h04

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