Page 3 of 10 FirstFirst 12345 ... LastLast
Results 21 to 30 of 98

Thread: [2.0.1/2.1] Field.destroy() on Fields rendered by FormLayout does not clean up.

  1. #21
    Sencha Premium Member ethraza's Avatar
    Join Date
    Jun 2007
    Location
    Brazil
    Posts
    378
    Vote Rating
    9
      0  

    Arrow

    Me too!!!
    LAMPE (Linux / Apache / MySQL / PHP / ExtJs)

  2. #22
    igor.stama
    Guest

    Default

    Greetings Animal and Condor,
    thank you for the override code.

    Let me first say how wonderful the ExtJS framework is, but as always there are some quirks like this.

    I have a formPanel and it will contain, radios, textfields, comboboxes etc that need to be hidden or need to affect the visibility of other fields on the form. As usual the labels are not hidden but we have added your fix to extend the Ext.FormPanel code at the moment it doesn't work for a combo box field. Any help appriciated \0/

    Here is the use-case and my investigation using Firebug:

    When a combo is present on a form it does not add x-hide-display prior to the x-form-item class, but instead it adds display: none; to the style of the combo and as a result it does not hide the label .

    I would be available to give you additional information if you need them.

    I'm using version 2.1 of ExtJS.

  3. #23
    Sencha - Community Support Team Condor's Avatar
    Join Date
    Mar 2007
    Location
    The Netherlands
    Posts
    24,246
    Vote Rating
    119
      0  

    Default

    Quote Originally Posted by igor.stama View Post
    ...
    we have added your fix to extend the Ext.FormPanel code at the moment it doesn't work for a combo box field
    ...
    Combobox completely ignores the normal field show and hide and uses its own logic.
    In your case you could replace the onShow and onHide methods with the original code, e.g.

    Code:
    {
    	xtype: 'combo',
    	onShow: Ext.form.TextField.prototype.onShow,
    	onHide: Ext.form.TextField.prototype.onHide,
    	...
    }
    or as an override:

    Code:
    Ext.override(Ext.form.TriggerField, {
    	actionMode: 'wrap',
    	onShow: Ext.form.TriggerField.superclass.onShow,
    	onHide: Ext.form.TriggerField.superclass.onHide
    });
    Last edited by Condor; 30 Dec 2008 at 4:35 AM. Reason: Added override

  4. #24
    Ext User
    Join Date
    Nov 2007
    Location
    So Jos do Rio Preto, Brazil
    Posts
    69
    Vote Rating
    0
      0  

    Default

    Thanks a lot... this works fine with me too...

  5. #25
    Ext User
    Join Date
    Nov 2007
    Location
    So Jos do Rio Preto, Brazil
    Posts
    69
    Vote Rating
    0
      0  

    Default

    Condor...
    I got a problem here... I used ur override code... but it broke my form, I
    Attached Images Attached Images

  6. #26
    Ext User
    Join Date
    Nov 2007
    Location
    So Jos do Rio Preto, Brazil
    Posts
    69
    Vote Rating
    0
      0  

    Default

    Hey Condor...

    I think that I fixed here... now its hidding and showing all, I just need take off the delay kkkk
    thanks again condor and animal

    Code:
    Ext.override(Ext.layout.FormLayout, {
        renderItem : function(c, position, target){
            if(c && !c.rendered && c.isFormField && c.inputType != 'hidden'){
                var args = [
                       c.id, c.fieldLabel,
                       c.labelStyle||this.labelStyle||'',
                       this.elementStyle||'',
                       typeof c.labelSeparator == 'undefined' ? this.labelSeparator : c.labelSeparator,
                       (c.itemCls||this.container.itemCls||'') + (c.hideLabel ? ' x-hide-label' : ''),
                       c.clearCls || 'x-form-clear-left' 
                ];
                if(typeof position == 'number'){
                    position = target.dom.childNodes[position] || null;
                }
                if(position){
                    c.formItem = this.fieldTpl.insertBefore(position, args, true);
                }else{
                    c.formItem = this.fieldTpl.append(target, args, true);
                }
    
    //          Remove the form layout wrapper on Field destroy.
                c.on('destroy', c.formItem.remove, c.formItem, {single: true});
                c.on('hide', c.formItem.hide, c.formItem, {single: false});
                c.on('show', c.formItem.show, c.formItem, {single: false});
                c.render('x-form-el-'+c.id);
            }else {
                Ext.layout.FormLayout.superclass.renderItem.apply(this, arguments);
            }
        }
    });

  7. #27
    Sencha User mysticav's Avatar
    Join Date
    Mar 2007
    Location
    Mexico
    Posts
    528
    Vote Rating
    50
      0  

    Default

    According to Jack's response, seems that there's no plan to add this functionality to the core code.

    He mentions about a plugin.

    Does anybody has created that plugin, or should I do the override ?

  8. #28
    Sencha User
    Join Date
    Nov 2007
    Posts
    243
    Vote Rating
    0
      0  

    Default

    Any update on this guys? I've also run into this issue and it's quite a problem. Is there a semi-official fix - it sounded like Animal/Condor's wasn't quite fully functional,

    Cheers!

  9. #29
    psaraf
    Guest

    Default

    Thanks leolima, you code help me to solve the issue.

  10. #30
    Ext User
    Join Date
    May 2008
    Posts
    14
    Vote Rating
    0
      0  

    Default

    Quote Originally Posted by JamesC View Post
    Any update on this guys? I've also run into this issue and it's quite a problem. Is there a semi-official fix - it sounded like Animal/Condor's wasn't quite fully functional,

    Cheers!
    I am also struggling with this. Hoping for a public setter method, perhaps setLabelVisible?

Page 3 of 10 FirstFirst 12345 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •