Ext.define('app.view.main.biz.customer.receipt.followup.FollowUpActionPanel', { extend: 'Ext.grid.Panel', border: false, margin:'10 20 20 20', hideHeaders: true, columns: [{ flex : 1, renderer: function (value, metaData, record, rowIndex) { var page = "<table>" + "<tr>" + "<td><div style='padding-left:10px'>" + record.data.followUpName + "</div></td>" + "<td><div style='padding-left:50px'>跟进日期:" + record.data.followUpDate + "</div></td>" + "<td><div style='padding-left:50px'>跟进方式:"+record.data.followUpActionName+"</div></td>" + "<td><div style='padding-left:50px'>跟进类型:"+record.data.followUptypeName+"</div></td>" + "</tr>" + "</table>"; return page; } }], plugins: [{ ptype: 'rowexpander', rowBodyTpl : new Ext.XTemplate( '<div id="{id}">', '</div>' ) }], initComponent: function (config) { var me = this; var bar = Ext.apply(this, { dockedItems :[{ xtype: 'toolbar', dock: 'top', overflowHandler: 'menu' }], store:Ext.create('app.view.main.biz.customer.receipt.followup.FollowUpMainPlanStore',{ autoLoad:true, customerId:me.customerId, trackId:me.trackId }), listeners:{ afterrender:function() { me.getStore().load({ //默认展开所有。 callback:function() { var expander = me.plugins[0]; var count = me.getStore().getCount() for(var i = count-1; i >= 0; i--) { expander.toggleRow(i,me.getStore().getAt(i)); } } }) } } }); this.callParent(arguments); //注意先后顺序(一定要先渲染之后才能拿到这些值) me.getView().on('expandBody', function(rowNode, record, expandRow, eOpts){ var parent = document.getElementById(record.get('id')); if(!parent || !parent.hasChildNodes()) { var innerGrid = Ext.create('app.view.main.biz.customer.receipt.followup.FollowUpCommentPanel', { actionId: record.get('id'), record: record, renderTo: record.get('id')+'' }); innerGrid.getEl().swallowEvent([ 'mousedown', 'mouseup', 'click', 'contextmenu', 'mouseover', 'mouseout', 'dblclick', 'mousemove', 'focusmove', 'focuschange', 'focusin', 'focusenter' ]); } }); me.getView().on('collapsebody',function(rowNode, record, expandRow, eOpts){ /*var parent = document.getElementById(record.get('id')); if(!parent) return; var child = parent.firstChild; while (child) { child.parentNode.removeChild(child); child = child.nextSibling; }*/ }); } });