使用 extJS 从网格面板中获取价值

Posted

技术标签:

【中文标题】使用 extJS 从网格面板中获取价值【英文标题】:get value from gridpanel with extJS 【发布时间】:2015-02-03 14:48:18 【问题描述】:

我有一个带有一些行的网格面板。如果您双击该行,我想在警报中显示 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 值吗?

提前谢谢你。

【问题讨论】:

【参考方案1】:

对于未来,最好指出您使用的是哪个 Ext JS 版本。仅从您的代码中就完全不明显。

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

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

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);
    

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

【讨论】:

谢谢你,实际上我使用的是 ExtJS5。现在它完美地工作了。

以上是关于使用 extJS 从网格面板中获取价值的主要内容,如果未能解决你的问题,请参考以下文章

ExtJs - 如何通过 id 从商店获取价值?

Extjs4 - 如何从商店的第一条记录中获取价值

如何从 Sencha extjs 获取存储价值

EXTJS 网格面板侦听器 - 从对象中检索数据

Android:从网格视图中获取价值

在 ExtJS 中从 GridPanel 获取模型