2009-08-06 10 views
1

Eine Combobox in der folgenden Konstellation (extrem beschnittener Code) hat Probleme bei der Größenanpassung in IE6. Ein kleines Debugging hat ergeben, dass es kein Ereignis erhält, wenn man versucht, die westliche Region mit Splitter zu verkleinern.ExtJs Combobox Größe ändern Problem auf IE6

Ext.onReady(function(){ 
    var grid = new Ext.Viewport({ 
     layout: 'border' 
     ,items: [{ 
       region: 'west' 
       ,width: 200 
       ,layout: 'fit' 
       ,split: true 
       ,items: [{ 
        layout: 'accordion' 
        ,items: [{ 
         layout: 'Anchor' 
         ,items: [{ 
          xtype: 'combo' 
          ,anchor: '100%' 
          ,typeAhead:true 
          ,triggerAction: 'all' 
          ,selectOnFocus: true 
          ,mode: 'local' 
          ,emptyText: 'bitte wählen' 
          ,displayField: 'displayText' 
          ,store: new Ext.data.ArrayStore({ 
           fields: ['displayText'], 
           data: [['item1'], ['item2']] 
          }) 
         }] 
        }] 
       }] 
      },{ 
       region: 'center' 
       ,html: 'content'     
      } 
     ] 
     ,renderTo: Ext.getBody() 
    }); 
}); 

Antwort

1

Es passiert nur innerhalb eines Akkordeon-Layouts. Untersuche das weiter.

Ext.onReady(function() { 
    var grid = new Ext.Viewport({ 
     layout: 'border' 
     ,items: [{ 
      region: 'west' 
      ,width: 200 
      ,split: true 
      --,layout: 'fit' << not necessary. You're overnesting. 
      ,layout: 'anchor' 
      ,items: [{ 
       xtype: 'combo' 
       ,anchor: '100%' 
       ,typeAhead:true 
       ,triggerAction: 'all' 
       ,selectOnFocus: true 
       ,mode: 'local' 
       ,emptyText: 'bitte wählen' 
       ,displayField: 'displayText' 
       ,store: new Ext.data.ArrayStore({ 
        fields: ['displayText'], 
        data: [['item1'], ['item2']] 
       }) 
      }] 
     },{ 
      region: 'center' 
      ,html: 'content'         
     }] 
    }) 
}); 

Die oben genannten Arbeiten gut für mich in IE6

+0

das „overnesting sowie das Akkordeon gut, benötigt wird. Der obige Code extrem beschnitten wird. Der zusätzliche Layout-fit-Panel um den Akkordeon-Panel ist für eine zusätzliche untere Symbolleiste erforderlich. Jedes Element in dem obigen Code Fast ist es aus einem Grund. –

1

Ich hoffe, das Ihnen hilft.

Auszug aus AnchorLayout doc:

AnchorLayout hat keine direkten Konfigurationsoptionen (außer geerbt ist). Der Container, der das AnchorLayout verwendet, kann jedoch eine verankerungsspezifische Konfigurationseigenschaft von anchorSize liefern. Standardmäßig berechnet AnchorLayout Ankermessungen basierend auf der Größe des Containers selbst. Wenn jedoch anchorSize specifed ist, wird das Layout es als virtuelle Container für die Zwecke der Berechnung Anker Messungen statt basierend auf sich aus, so dass der Behälter unabhängig von der Verankerung Logik bei Bedarf dimensioniert werden.

Die Elemente hinzugefügt, um eine AnchorLayout kann auch eine Verankerungsspezifischen Config Eigenschaft Anker liefern, die eine Zeichenfolge enthält zwei Werte: der horizontale Ankerwert und der vertikale Ankerwert (beispielsweise ‚100 % 50% '). Dieser Wert sagt das Layout, wie der Artikel im Container verankert sein sollte. Die folgenden Arten von Ankerwerten unterstützt:

Percentage: Jeder Wert zwischen 1 und 100 , ausgedrückt als Prozentsatz. Der erste Anker ist die prozentuale Breite , die der Artikel innerhalb des Containers aufnehmen soll, und die zweite ist die prozentuale Höhe. Beispiel: '100% 50%' würde einen Artikel die komplette Breite des Behälters und 1/2 seine Höhe machen. Wenn nur ein Ankerwert angegeben ist, wird angenommen, dass er die Breite hat, und die Höhe wird standardmäßig auto.

Offsets: Beliebig positiv oder negativer ganzzahliger Wert. Der erste Anker ist der Versatz von der rechten Kante des Containers, und der zweite ist der Versatz von der unteren Kante. Beispiel: '-50 -100' würde einen Artikel die komplette Breite des Containers minus 50 Pixel und die komplette Höhe minus 100 Pixel darstellen.Wenn nur ein Ankerwert geliefert wird angenommen wird die rechten Offset-Wert zu sein, und den versetzten Boden wird Standard auf 0.

Sides: Gültige Werte sind ‚rechts‘ (oder ‚R‘) und "unten" (oder "b"). Entweder der Behälter muss eine feste Größe oder einen anchorSize Config Wert definiert, bei Renderzeit um für diese keine Wirkung hat.

0

Ich hatte ein ähnliches Problem. Versuchen Sie, die Combobox in einen Behälter zu geben. Anstatt es direkt in das Panel mit dem Ankerlayout zu legen, fügen Sie das Combo in einen Container ein und fügen Sie diesen Container dem Panel mit dem Ankerlayout hinzu! Es sollte funktionieren!