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;
            }*/
        });
    }
});
ext grid 子表格的更多相关文章
- ExtJs 学习之开篇(三)Ext.grid.Panel表格中的处理
		
Ext.grid.Panel Ext.create('Ext.grid.Panel',{ title:'测试表格', width:400, height:20 ...
 - Ext.grid.Panel表格分页存储过程
		
/*首先需要引入两个Extjs插件类 Ext.ux.data.PagingMemoryProxy和Ext.ux.ProgressBarPager这两个类*/ /*下面是控制弹出窗体放大缩小时窗体居中的 ...
 - Ext.grid.Panel表格分页
		
转载:http://www.cnblogs.com/libingql/archive/2012/04/22/2464994.html cshtml @{ Layout = null; } <!D ...
 - ExtJs的Ext.grid.GridPanel不能选择复制表格中的内容解决方案
		
今天遇到grid复制的问题,在网上找到了一个解决办法,只需改下CSS和JS,给大家分享一下: 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dy_paradise/a ...
 - jqGrid subGrid配置 如何首次加载动态展开所有的子表格
		
有时候需求需要默认加载表格的时候把子表格的数据也显示出来,经过研究相关SubGrids API配置如下: 属性 类型 描述 默认值 subGrid boolean 设置为true启用子表格.如果启用子 ...
 - Ext.grid.GridPanel属性及方法等
		
1.Ext.grid.GridPanel主要配置项:store:表格的数据集columns:表格列模式的配置数组,可自动创建ColumnModel列模式autoExpandColumn:自动充满表格未 ...
 - Ext.grid.plugin.RowExpander的简单用法
		
有时候,我们在grid里渲染数据时,由于某些字段的内容太长,而grid又不会自动出现滚动条,于是溢出的内容后面就会出现省略号, 导致信息展示不完全.如果,这个信息不太重要,展示不完全也无关紧要.可是, ...
 - Ext.grid.Panel 数据动态改变后刷新grid
		
gridPanel中加载的数据分为两种:一种是本地数据加载,那另一种就是后台数据加载. 在表格中增.删.改.查 是必不可少的. 那么数据动态改变后怎样刷新表格中的数据呢. 一.后台取数据 var gr ...
 - Ext.grid.GridPanel的属性
		
1.Ext.grid.GridPanel 主要配置项: store:表格的数据集 columns:表格列模式的配置数组,可自动创建ColumnModel列模 ...
 
随机推荐
- android 点击屏幕关闭 软键盘
			
//点击屏幕 关闭输入弹出框 @Override public boolean onTouchEvent(MotionEvent event) { InputMethodManager im = (I ...
 - 用eclipse导入jar包并使其在一个文件夹下
			
步骤如下:1.右键点击你需要添加jar包的项目. 2.选择“Properties”. 3.然后选择对话框中的“Java Build Path”. 4.选择“Libraries”选项卡,然后点击右边的“ ...
 - php:Header
			
转自鸟哥的博客: http://www.laruence.com/2007/12/16/308.html PHP header()the function declaration: void head ...
 - Memcached存储命令 - set
			
Memcached set 命令用于将 value(数据值) 存储在指定的 key(键) 中. 如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用. set 命 ...
 - [译]git commit
			
git commit git commit命令提交stage区的快照到项目历史中去(HEAD). 被提交的快照被认为是一个项目的安全版本. Git不会修改他们, 除非你显示的要求了. 和git add ...
 - [译]Node.js面试问与答
			
原文: http://blog.risingstack.com/node-js-interview-questions/ 什么是error-first callback? 如何避免无休止的callba ...
 - 大数据BI积累
			
http://blog.csdn.net/wyzxg/article/category/535869 设计论文:http://www.doc88.com/p-3877368345851.html 自动 ...
 - ACM2 斐波那契数列
			
描述 在数学上,斐波那契数列(Fibonacci Sequence),是以递归的方法来定义: F0 = 0 F1 = 1 Fn = Fn - 1 + Fn - 2 用文字来说,就是斐波那契数列由0和1 ...
 - 下位机多个".c, .h"文件的相互包含及排版
			
一.背景: 自从接触单片机编程以来,由于工作上的需要,不可避免的时常会接手别人的代码,但常常由于上一位同事的编码随意性有点大,导致可读性非常的差,有时候不得不完全舍弃原有代码,推倒重来,无形中增加了工 ...
 - 小心一些,断言可能让你的造成循环引用NSAssert
			
block和self的相互引用造成的循环引用,想必大家都是明白的.上下面的代码(截取部分) __weak typeof(self) weakSelf = self; self.jsBridgeFunc ...