【问题标题】:Extjs 4.2: Getting the selected cell value in grid panelExtjs 4.2:在网格面板中获取选定的单元格值
【发布时间】:2013-10-17 07:11:13
【问题描述】:

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

方法:

创建播放列表:函数(记录){
var scope = this;
变量记录 = getShowImages.getSelectionModel().getSelection();

console.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;
            }
        }



    ]
});

【问题讨论】:

    标签: extjs grid


    【解决方案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));
        }
    });
    

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

    【讨论】:

      【解决方案2】:

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

      listeners : {
          cellclick : function(view, cell, cellIndex, record, row, rowIndex, e) {
              //handle event   
          }
      }
      

      【讨论】:

        【解决方案3】:

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

        点击表格单元格时触发。

        编辑:

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

        listeners : {
            cellclick : function(view, cell, cellIndex, record, row, rowIndex, e) {
                console.log(cell);
            }
        }
        

        【讨论】:

        • 您能说得更具体些吗?我是新来的。对不起。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多