Javascript EXT JS通过列渲染器在选择时获取ID

Javascript EXT JS通过列渲染器在选择时获取ID,javascript,web,extjs,extjs4,Javascript,Web,Extjs,Extjs4,使用ExtJS4.2.3,我有一个带有附件列表的网格面板。网格面板有cellclick监听器,它在选择单元格后开始下载文件。需要在列渲染器中为图像单击重新生成代码(列名“保存”) 单元格单击的当前代码示例: FileGrid = new Ext.grid.Panel({ renderTo: "EXT-CONTENT", width: 500, height: 600, listeners: {

使用ExtJS4.2.3,我有一个带有附件列表的网格面板。网格面板有cellclick监听器,它在选择单元格后开始下载文件。需要在列渲染器中为图像单击重新生成代码(列名“保存”

单元格单击的当前代码示例:

 FileGrid = new Ext.grid.Panel({
            renderTo: "EXT-CONTENT",
            width: 500,
            height: 600,
            listeners: {
                cellclick: function (table, td, cellIndex, record, tr, rowIndex, e) {
                    var url = 'http://.../Attachment/Get?document_GUID=' + record.get("document_GUID");
                    console.log(url);
                    window.location = url;
                }
            },
使用列“Save”编码,其中我需要通过列渲染器复制cellclick函数:

                },
                columns: {
                    defaults: { filter: true },
                    items: [
                            {
                                text: 'Attachname', dataIndex: 'attachment_fileName', width: 395, cellWrap: true,

                            },
                            {
                                text: 'Save', width: 100, align: 'center', sortable: false, menuDisabled: true, cellWrap: true,
                                renderer: function (val) {

                                    return '<a href="http://.../Attachment/Get?document" onclick="????">' + "<img src='/APPLICATION/Images/Save24.gif'/>" +
                                        '</a>';

                                }
                            },                                

                    ]
                },
                store: Ext.data.StoreManager.lookup('FileStore')
            });
},
栏目:{
默认值:{filter:true},
项目:[
{
文本:'Attachname',数据索引:'attachment_fileName',宽度:395,cellWrap:true,
},
{
文本:“保存”,宽度:100,对齐:“居中”,可排序:false,菜单禁用:true,单元格换行:true,
渲染器:函数(val){
返回“”;
}
},                                
]
},
存储:Ext.data.StoreManager.lookup('FileStore')
});

您是否尝试使用“操作”列

     {
        xtype:'actioncolumn',
        width:50,
        items: [{
            icon: 'urlToMyImage/image.png',
            tooltip: 'Do Stuff',
            handler: function(grid, rowIndex, colIndex) {

                //The hole record to play with
                var rec = grid.getStore().getAt(rowIndex);

                //the ID
                alert("My ID" + rec.get('MyIDColumn'));

            }
        }]
    }

您是否尝试过使用操作列来代替

     {
        xtype:'actioncolumn',
        width:50,
        items: [{
            icon: 'urlToMyImage/image.png',
            tooltip: 'Do Stuff',
            handler: function(grid, rowIndex, colIndex) {

                //The hole record to play with
                var rec = grid.getStore().getAt(rowIndex);

                //the ID
                alert("My ID" + rec.get('MyIDColumn'));

            }
        }]
    }
你需要用这个

在这个中,我使用您的代码创建了一个演示,并进行了修改。我希望这将帮助或指导您实现您的要求

Ext.create('Ext.data.Store', {
    storeId: 'simpsonsStore',
    fields: ['name', 'email', 'phone', 'document_GUID'],
    data: {
        'items': [{
            'name': 'Lisa',
            "email": "lisa@simpsons.com",
            "phone": "555-111-1224",
            "document_GUID": 123
        }, {
            'name': 'Bart',
            "email": "bart@simpsons.com",
            "phone": "555-222-1234",
            "document_GUID": 124
        }, {
            'name': 'Homer',
            "email": "homer@simpsons.com",
            "phone": "555-222-1244",
            "document_GUID": 125
        }, {
            'name': 'Marge',
            "email": "marge@simpsons.com",
            "phone": "555-222-1254",
            "document_GUID": 126
        }]
    },
    proxy: {
        type: 'memory',
        reader: {
            type: 'json',
            root: 'items'
        }
    }
});

Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    store: Ext.data.StoreManager.lookup('simpsonsStore'),
    columns: [{
        text: 'Name',
        dataIndex: 'name'
    }, {
        text: 'Email',
        dataIndex: 'email',
        flex: 1
    }, {
        text: 'Phone',
        dataIndex: 'phone'
    }, {
        xtype: 'actioncolumn',
        width: 50,
        text: 'Save',
        items: [{
            icon: 'https://image.flaticon.com/icons/svg/69/69656.svg', // Use a URL in the icon config
            itemId: 'save',
            handler: function (grid, rowIndex, colIndex) {
                var rec = grid.getStore().getAt(rowIndex);
                var url = 'http://Attachment/Get?document_GUID=' + rec.get("document_GUID") + '_' + rec.get("name");
                alert(url);
                console.log(url);
            }
        }]
    }],
    height: 200,
    renderTo: Ext.getBody()
});
你需要用这个

在这个中,我使用您的代码创建了一个演示,并进行了修改。我希望这将帮助或指导您实现您的要求

Ext.create('Ext.data.Store', {
    storeId: 'simpsonsStore',
    fields: ['name', 'email', 'phone', 'document_GUID'],
    data: {
        'items': [{
            'name': 'Lisa',
            "email": "lisa@simpsons.com",
            "phone": "555-111-1224",
            "document_GUID": 123
        }, {
            'name': 'Bart',
            "email": "bart@simpsons.com",
            "phone": "555-222-1234",
            "document_GUID": 124
        }, {
            'name': 'Homer',
            "email": "homer@simpsons.com",
            "phone": "555-222-1244",
            "document_GUID": 125
        }, {
            'name': 'Marge',
            "email": "marge@simpsons.com",
            "phone": "555-222-1254",
            "document_GUID": 126
        }]
    },
    proxy: {
        type: 'memory',
        reader: {
            type: 'json',
            root: 'items'
        }
    }
});

Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    store: Ext.data.StoreManager.lookup('simpsonsStore'),
    columns: [{
        text: 'Name',
        dataIndex: 'name'
    }, {
        text: 'Email',
        dataIndex: 'email',
        flex: 1
    }, {
        text: 'Phone',
        dataIndex: 'phone'
    }, {
        xtype: 'actioncolumn',
        width: 50,
        text: 'Save',
        items: [{
            icon: 'https://image.flaticon.com/icons/svg/69/69656.svg', // Use a URL in the icon config
            itemId: 'save',
            handler: function (grid, rowIndex, colIndex) {
                var rec = grid.getStore().getAt(rowIndex);
                var url = 'http://Attachment/Get?document_GUID=' + rec.get("document_GUID") + '_' + rec.get("name");
                alert(url);
                console.log(url);
            }
        }]
    }],
    height: 200,
    renderTo: Ext.getBody()
});