Success! Looks like we've fixed this one. According to our records the fix was applied for a bug in our system in a recent build.
  1. #1
    Ext JS Premium Member devtig's Avatar
    Join Date
    Jan 2010
    Location
    Rotterdam, The Netherlands
    Posts
    412
    Vote Rating
    14
    devtig will become famous soon enough

      0  

    Exclamation IE6 - Combobox - only first item visible on first click

    Ext version tested:
    • Ext 4.1.3
    • Ext 4.1.1
    Browser versions tested against:
    • IE6 (6.0.2800) on Win2000
    • IE6 (6.0.2900) on WinXP
    DOCTYPE tested against:
    • <!DOCTYPE html>
    • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    Description:
    • The dropdown list only shows the first item after clicking the trigger the first time. The other items remain hidden. When you click again on the trigger, all items are visible. This problem occurs in IE6 only. The screen shots says it all (reproduce, what expected and what not.)
    Test Case:
    Code:
    Ext.define('MyApp.view.TestForm', {
        extend: 'Ext.form.Panel',
        initComponent: function() {
            var me = this;
    
    
            Ext.applyIf(me, {
                items: [
                    {
                        xtype: 'combobox',
                        name: 'id_country',
                        fieldLabel: 'Land',
                        displayField: 'description',
                        store: 'Countries',
                        valueField: 'id_country'
                    }
                ]
            });
    
    
            me.callParent(arguments);
        }
    });
    Screenshot:
    IE6 - Combobox - only first item visible on first click.PNG

    See this URL for live test case: http://

    Debugging already done:
    • Test all other browsers (no problem). Tested 4.1.1 and several doctypes (same problem)
    Possible fix:
    • not provided
    Additional CSS used:
    • No idea, beacuse difficult to debug IE6 only. IE7+ has no problems.
    Operating System:
    • WinXP Pro
    Christiaan Westerbeek @ Devotis
    Contact me for help with Ext JS, Node JS, FireBase, AngularJS and Javascript in general. Email me or find me at AirPair to connect.

  2. #2
    Sencha - Ext JS Dev Team evant's Avatar
    Join Date
    Apr 2007
    Location
    Sydney, Australia
    Posts
    17,767
    Vote Rating
    776
    evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute

      1  

    Default

    Ah, another good old IE repaint bug. As it goes, we actually have this one fixed for the 4.2 release, the bound list forces a repaint on the list element in IE6 when it refreshes.
    Evan Trimboli
    Sencha Developer
    Twitter - @evantrimboli
    Don't be afraid of the source code!

  3. #3
    Ext JS Premium Member devtig's Avatar
    Join Date
    Jan 2010
    Location
    Rotterdam, The Netherlands
    Posts
    412
    Vote Rating
    14
    devtig will become famous soon enough

      0  

    Default

    Great news. Mind sharing a snippet of the fix, so that I can apply it in my client's project using 4.1.1?
    Christiaan Westerbeek @ Devotis
    Contact me for help with Ext JS, Node JS, FireBase, AngularJS and Javascript in general. Email me or find me at AirPair to connect.

  4. #4
    Sencha - Ext JS Dev Team evant's Avatar
    Join Date
    Apr 2007
    Location
    Sydney, Australia
    Posts
    17,767
    Vote Rating
    776
    evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute

      1  

    Default

    Code:
    refresh: function(){
        var me = this,
            toolbar = me.pagingToolbar,
            rendered = me.rendered;
            
        me.callParent();
        // The view removes the targetEl from the DOM before updating the template
        // Ensure the toolbar goes to the end
        if (rendered && toolbar && toolbar.rendered && !me.preserveScrollOnRefresh) {
            me.el.appendChild(toolbar.el);
        }  
            
        // IE6 strict can sometimes have repaint issues when showing
        // the list from a remote data source
        if (rendered && Ext.isIE6 && Ext.isStrict) {
            me.listEl.repaint();
        }
    }
    Evan Trimboli
    Sencha Developer
    Twitter - @evantrimboli
    Don't be afraid of the source code!

  5. #5
    Ext JS Premium Member devtig's Avatar
    Join Date
    Jan 2010
    Location
    Rotterdam, The Netherlands
    Posts
    412
    Vote Rating
    14
    devtig will become famous soon enough

      0  

    Default

    Thanks evant, it works! (4.1.1).

    This bit is now in my ext-overrides.js until 4.2. The blue code is the bugfixer.
    Code:
    Ext.view.BoundList.override({
        refresh: function(){
            var me = this,
                toolbar = me.pagingToolbar,
                rendered = me.rendered;
    
            me.callParent();
            // The view removes the targetEl from the DOM before updating the template
            // Ensure the toolbar goes to the end
            if (rendered && toolbar && toolbar.rendered && !me.preserveScrollOnRefresh) {
                me.el.appendChild(toolbar.el);
            }  
    
            // IE6 strict can sometimes have repaint issues when showing
            // the list from a remote data source
            if (rendered && Ext.isIE6 && Ext.isStrict) {
                me.listEl.repaint();
            }
        }
    });
    Christiaan Westerbeek @ Devotis
    Contact me for help with Ext JS, Node JS, FireBase, AngularJS and Javascript in general. Email me or find me at AirPair to connect.

Thread Participants: 1