Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从ExtJS4中的accordion和grid获取值_Javascript_Extjs_Extjs4_Extjs4.1_Extjs Grid - Fatal编程技术网

Javascript 从ExtJS4中的accordion和grid获取值

Javascript 从ExtJS4中的accordion和grid获取值,javascript,extjs,extjs4,extjs4.1,extjs-grid,Javascript,Extjs,Extjs4,Extjs4.1,Extjs Grid,我想根据网格值的参数制作pdf报告。我想从手风琴标题中获取年份作为参数编号1,月份名称作为参数编号2。但是我做不到。谁能帮我一下吗。下面是我的代码: Ext.define('Ext4Example.view.attendence.Timeperiod' ,{ extend: 'Ext.form.Panel', alias : 'widget.timeperiod', id: 'timeperiod', region: 'west', border: tru

我想根据网格值的参数制作pdf报告。我想从手风琴标题中获取年份作为参数编号1,月份名称作为参数编号2。但是我做不到。谁能帮我一下吗。下面是我的代码:

Ext.define('Ext4Example.view.attendence.Timeperiod' ,{
    extend: 'Ext.form.Panel',
    alias : 'widget.timeperiod',
    id: 'timeperiod',
    region: 'west',
    border: true,
    width: 150,
    height:395,
    split: true,
    defaults: {
        // applied to each contained panel
        //bodyStyle: 'padding:15px'
    },
    layout: {
        // layout-specific configs go here
        type: 'accordion',
        titleCollapse: true,
        animate: true,
        activeOnTop: true,
        hideCollapseTool : true

    },

    initComponent: function() {
        var me = this;
        me.items = me.maccord();
        me.callParent(arguments);
    },
    mstore: function(year){
        var data = [
            [1,  year, 'January'  ],
            [2,  year, 'February' ],
            [3,  year, 'March'    ],
            [4,  year, 'April'    ],
            [5,  year, 'May'      ],
            [6,  year, 'June'     ],
            [7,  year, 'July'     ], 
            [8,  year, 'August'   ], 
            [9,  year, 'September'], 
            [10, year, 'October'  ], 
            [11, year, 'November' ], 
            [12, year, 'December' ]
        ];

        var store = Ext.create('Ext.data.ArrayStore', {
            storeId: 'mstore',
            fields: [              
                {name: 'id', type: 'int'},
                {name: 'year', type: 'int'},
                {name: 'month', type: 'string'}
            ],
            data:data
        });
        return store;
    },
    mpanel: function(year){
        var me = this,
        mpanel = new Ext.grid.Panel({
            border: false,
            viewConfig: {
                stripeRows: true
            },
            hideHeaders: true,
            columns: [
                { text: 'month',  dataIndex: 'month', flex: 1},
                { menuDisabled    : true,
                    sortable        : false,
                    xtype           : 'actioncolumn',
                    width           : 24,
                    items           : [{
                            icon        : "${resource(dir: 'images', file: 'PDF01001.png')}",
                            hide        : true,
                            tooltip     : 'Print PDF Report of this Month?',
                            handler     : function(record) {
                                          alert(record.data.month)
                            }
                        }]
                }
            ],
            listeners:{
                selectionchange:function(model, records ) {
                    var store = Ext.data.StoreManager.lookup('Attendences');
                    var record = records[0];
                    store.load({
                        filters: [
                            {property:'month', value:record.data.id},
                            {property:'year', value:record.data.year}
                        ]          
                    });                    
                }
            },
            store: me.mstore(year),
            width: 150
        });
        return mpanel;
    },
    maccord: function(){          
        var year = ${(new Date()).format('yyyy')},
        limit = year - 5,
        me = this,
        maccord = [];

        for(year; year > limit ; year--){
            maccord.push({
                title: 'Year '+ year,
                ident: 'accordion-panel',
                items: me.mpanel(year)              
            });
        }
        return maccord;
    }
});

月份和年份都在你的记录中。你不需要从手风琴的标题中得到年份。您的问题是,记录不是处理程序中的第一个参数:

你可以看看:

items: [{
   icon: 'test',
   tooltip: 'Print PDF Report of this Month?',
   scope: this,
   handler: function(view, rowIndex, colIndex, item, e, record) {
        alert(record.data.month + "/" + record.data.year);
   }
}]