在 EXTJS 4 中向 Ext.Grid.panel 添加监听器

Posted

技术标签:

【中文标题】在 EXTJS 4 中向 Ext.Grid.panel 添加监听器【英文标题】:Adding listener to Ext.Grid.panel in EXTJS 4 【发布时间】:2012-02-09 14:32:38 【问题描述】:

我正在尝试将侦听器添加到 Ext.grid.panel

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


我想得到我点击的行的索引值。因此,当我第一次单击该行时,我会在带有索引的警报框中得到:[object Object]。后两个警报根本没有出现。

所以当我再次单击同一行时。它会显示正确的索引,然后在警告框中显示“数据”和“类型”。

如何仅在第一次点击时获得正确的值?

【问题讨论】:

为什么要从商店访问记录?事件处理程序的第二个参数是与单击的项目关联的记录。您是否有某些原因需要按索引访问记录? 还要小心定义将在参数列表中屏蔽记录变量的记录变量。 【参考方案1】:

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

您会看到不同的行为,具体取决于您是第一次单击项目还是可能与网格的创建/渲染方式无关。

作为“索引”传递给您的侦听器函数的对象的内容可能会为您提供线索。如果您将其记录到控制台,您将能够对其进行检查。 (至少 Chrome 是这样处理对象记录的)。

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

【讨论】:

以上是关于在 EXTJS 4 中向 Ext.Grid.panel 添加监听器的主要内容,如果未能解决你的问题,请参考以下文章

在 extjs 中向容器添加 iframe

如何在 Swift 4 中向 UIView 添加子视图?

在 XCode 4.3 中向项目添加外部库 [重复]

如何在 Plone 4.1.4 中向 intranet_workflow 添加更多自定义状态

在 ExtJs 4.1 TreePanel 中隐藏一个节点

extjs 4 getLastSeletedCell 在网格中