(1)动态修改对象的 items, 如用 myPanel.add(item).doLayout(),其中的 item 一定要设置ID。
... addItems : function(records) { for (var i = 0; i < records.length; i++) { var rec = records[i]; var category = rec.get('code'); var catePanel = Ext.create('Ext.Panel', { id : 'categroiesview-' + rec.get('code'), width : 250, title : rec.get('name'), ... ... }); this.add(catePanel); }; }, ...
(2)按钮中文字有多行,想要实现多行和单行的按钮高度一样,中间的文件垂直居中,通过 afterrender 事件调用 defer 方式设置文本的 line-height,根据字数长度计算出每行的行高,再设置行高,能达到目的。
var buttonf = function(id, value, icons, record) { var lineCount = Math.ceil(value.length / 24); var lh = Math.ceil(40 / lineCount); var btn = new Ext.Button({ ... ... __textLineHeight : lh, __resetLineHeight : function() { var els = Ext.get(ids + '-btnInnerEl', true); els.setStyle('lineHeight', this.__textLineHeight + 'px'); }, listeners : { afterrender : function(cmp, eOpts) { Ext.defer(this.__resetLineHeight, 1, this, []); } }