1

我想在我的网格中获取所选单元格的值。我有以下代码:

方法:

createPlaylist: function(record){
var scope = this;
var srecords = getShowImages.getSelectionModel().getSelection();

控制台.log(srecords); }

我使用 console.log 检查我是否得到任何价值。

网格视图:

 Ext.ns('dlti.view.widget');
   Ext.define('dlti.view.widget.ShowImages' ,{
    extend: 'Ext.grid.Panel',
    id: 'dlti-grid-images',
    alias: 'widget.ShowImages',
    forceFit: true,
    stripeRows: true,
    selType: 'checkboxmodel',
    multiSelect: true,
    autosync: true,
    height: 250,
    width: 470,


    store: new dlti.store.UploadStore(),


    columns: [
        {
            text: 'Images',
            dataIndex: 'imagepath',
            renderer:   function renderIcon(val) {
                return '<img src="' + val + '"width="100px" height="100px" align="middle">';

            },          

        },
        {
            text: 'Filename',
            dataIndex: 'filename',
            renderer:   function renderDescTarget(val, p, record) {
                var desc = '';
                desc = '<p style="color:#000;font-size:12px;">' + val + '</p>';
                return desc;
            }
        }



    ]
});
4

3 回答 3

1

您需要添加一个 Select 侦听器,例如;

selModel: Ext.create('Ext.selection.CellModel', {
                        allowDeselect: true,
                        mode: 'SINGLE',
                        listeners: {
                            select: {
                                fn: me.onCellModelSelect,
                                scope: me
                            }
                        }
                    })

之后,提醒单元格值的函数应该如下所示;

onCellModelSelect: function(cellmodel, record, row, column, eOpts) {

        /*an if statement is required to parse the column chosen as
        record.get() only accepts string values of the column name so
        if the columns are named "first", "second", "third", the
        following if statement applies*/

        var columnName;

        if(column === 0){
            columnName= 'first';
        }else if(column === 1){
            columnName= 'Second';
        }else if(column === 2){
            columnName= 'Third';
        }
        Ext.Msg.alert('Cell Value',record.get(columnName));
    }
});

希望对你有效。如果你想让我把整页的代码发给你,请私信我!<3

于 2013-12-16T14:35:15.060 回答
0

你必须听 gridpanel 的cellclick事件。在您看来,您必须在网格面板的配置中添加以下内容:

listeners : {
    cellclick : function(view, cell, cellIndex, record, row, rowIndex, e) {
        //handle event   
    }
}
于 2013-10-17T07:56:14.247 回答
0

grid有一个cellclick您可以使用的事件:

单击表格单元格时触发。

编辑:

在您的网格中,您可以添加一个侦听器,每次单击单元格时都会触发该侦听器(您可以将其添加到控制器中),例如:

listeners : {
    cellclick : function(view, cell, cellIndex, record, row, rowIndex, e) {
        console.log(cell);
    }
}
于 2013-10-17T07:14:41.293 回答