ExtJS - 如何使用javascript操纵现有网格?

时间:2011-12-01 15:30:18

标签: javascript extjs automation web

我正在使用一个网络自动化工具来对付一个使用ExtJS网格的网站,并希望运行一些能够模拟一行“onlick”事件的JavaScript ...当我触发一个常规的onclick事件时各自的div标签,没有任何反应。

我做了一个'Ext.version'并获得了2.2,所以我在这里查找了Ext 2.2 API:http://extjs.edspencer.net/extjs/docs/但我无法理解它。我并不关心创建一个新的网格,而是操纵一个现有的网格......任何想法?

2 个答案:

答案 0 :(得分:1)

您需要查看GridPanel上的事件。有一个rowclick事件。然后,您可以在网格配置中将侦听器应用于网格:

new Ext.grid.GridPanel({
    ...
    listeners: {
        rowclick: function() {
            // do some stuff
        }
    }
});

或事后:

var grid = new Ext.grid.GridPanel({
    id: 'fooGrid'
});

Ext.getCmp('fooGrid').addListener('click', function(){
    // do some stuff
})

但是,如果您想要触发onclick事件,如您所述,请执行以下操作:

var rowIndex = 5;
var grid = Ext.getCmp('fooGrid')

grid.fireEvent('rowclick', grid, rowIndex)

Source,Observable对象。几乎所有东西都继承自ExtJS 2中的Observable:

http://extjs.edspencer.net/extjs/docs/#Ext.util.Observable

答案 1 :(得分:0)

我认为@WattsInABox在那里可以选择单个组件,但你是在'触发'click事件,而不是添加一个监听器。

ExtJS类存在于它自己的抽象泡泡中,而不是触发DOM事件'click'事件,你想要做的是触发特定行的SELECTION。选择第一行的代码如下所示:

Ext.getCmp('fooGrid').getSelectionModel().selectRow(0);

'fooGrid'是您想要触发操作的网格ID。