2012-02-09 137 views
0

添加监听器Ext.Grid.panel我试图监听器添加到Ext.grid.panel在EXTJS 4

listeners: { 

itemclick:function(grid, record, item, index, event){ 

alert(index); 
var record = grid.getStore().getAt(index); 
alert("Edit " + record.get('data')); 
alert("Type " + record.get('type')); 

} 

我supose让我点击的行的索引值。 所以当我第一次点击行时,我得到:[对象对象]在其中的索引警报框中。第二个警报不会出现。

所以当我再次点击同一行。它显示正确的索引,然后显示“数据”,然后在警告框中输入“type”。

任何人都可以指导我解决这个问题,以获得正确的值,只有第一次点击??? 紧急请帮助!

+2

你为什么要从商店访问记录?事件处理程序的第二个参数是与所单击项目相关的记录。是否有某些原因需要通过索引访问记录? – Eric 2012-02-09 18:27:40

+0

也要小心定义记录变量,它将在参数列表中掩盖记录变量。 – dbrin 2012-02-10 06:12:59

回答

0

当我将侦听器添加到自己的网格面板中时,每次都会得到相同的行为。例如: 4 /“编辑未定义”/“类型未定义”。

您看到不同的行为,具体取决于它是您第一次单击某个项目还是不可能与如何创建/呈现网格有关。

作为“索引”传递给您的侦听器函数的Object的内容可能会给您一个线索。如果您将其登录到控制台,您将能够检查它。 (至少Chrome是如何处理对象记录的)。

虽然这不是解决您的问题,但我希望它对您的调试有所帮助。