在不使用选择模型的情况下从网格获取单元格的值

时间:2014-10-10 12:16:13

标签: javascript jsp extjs

我想在点击该行中的任何单元格时从网格中检索单元格的值 我没有在网格中使用复选框选择模型。我没有找到任何使用复选框模型的网格解决方案 我正在尝试使用以下方式检索该值,但我收到的是未定义的'。

    listeners: {'cellclick': {fn: function(grid, cellIndex, rowIndex, columnIndex, value, e) {
                                   alert("grid "+grid+" rowIndex "+rowIndex+" columnIndex "+columnIndex+" e "+e+" cellIndex "+cellIndex);
                                   alert("record "+cellIndex.data);
                                   record = grid.getStore().getAt(rowIndex);
                                   cellvalue = record.get(colname);
                             }//funtion

在上面的代码中,cellIndex.data未定义。我也尝试了cellIndex.value和其他各种可能性 例如,我想要的是,当我单击行的第5列时,我想要检索同一行的第1列上的单元格值。怎么做到这一点?

1 个答案:

答案 0 :(得分:1)

看起来您的侦听器方法签名不正确。对于Ext JS 4.2,cellclick事件的处理程序采用以下参数:

this, td, cellIndex, record, tr, rowIndex, e, eOpts

http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.grid.Panel-event-cellclick

一旦你有了正确的签名,你就会发现cellclick事件也传递了record,它是绑定到发生cellclick事件的行的模型实例。您应该可以使用它来轻松地从模型实例中的任何字段中检索值,而无需先从商店中单独查找记录...您已经拥有它。

另外,请务必注意参数的数据类型。例如,cellIndex是一个数字,而不是一个对象。