使用 extJS 从 gridpanel 获取值

get value from gridpanel with extJS

我有一个包含几行的网格面板。如果您双击该行,我想在警报中显示 código 值。

仅使用这些代码,我从我双击的单元格中获取值(如果我单击 "tipo",我得到 "final" 或 "borrador",但不是 codigo 价值) 这是我的听众:

    listeners: {
        'rowdblclick': function (view, record, tr, columnIndex, e) {
            var cell = e.getTarget('.x-grid-cell-inner');
            if (!cell) {
                return;
            }
            alert(cell.innerHTML)
        }
    },

我尝试使用此代码但仍然失败 (null)

            'rowdblclick': function(view, rowIndex, colIndex, item, e, record){
                alert(grid.getStore().getAt(rowIndex).get('codigo'));
            }   

            'rowdblclick': function(view, rowIndex, colIndex, item, e, record){
                                        alert(record.get('codigo'));
            }   

我需要什么才能从您双击的行中获取 codigo 值?

提前谢谢你。

为了将来,指明您使用的是哪个 Ext JS 版本总是好的。仅从您的代码来看完全不明显。

也就是说,4.x 行中的视图没有 rowdblclick 事件,因此它必须是 3.x 或 5.x。我假设它是 5.x.

您的代码无法正常工作的原因是您的事件处理程序在第二个和第三个代码段中期望的参数错误。第一个有正确的签名,所以你应该使用它:

listeners: {
    // You don't have to declare all arguments, just those you need
    rowdblclick: function(view, record) {
        var codigo = record.get('codigo');

        alert('Codigo: ' + codigo);
    }
}

要获取数据,您永远不会在行和单元格中插入。行和单元格仅表示绑定到网格的存储中包含的数据。上面的事件处理程序接收被单击行的 record 对象,并且该记录包含该行的数据值。