ext grid 子表格

时间:2023-03-08 23:23:58
ext grid 子表格
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;
}*/
});
}
});