我正在构建一个ExtJS4 Web应用程序,我有一个"页面"我有一个网格,其记录来自数据库。加载网格存储后,我想要选择第一个项目。
这是我迄今为止所尝试过的:
store.load({
callback: function() {
if(store.count() > 0){
grid.getSelectionModel().select(0);
//grid.getView().select(0);
}
}
});
商店会在我的网格中显示数据库记录时正确加载它们。第一行也会突出显示,就好像它被单击一样。但是,itemclick
事件的监听器/控制器不会触发,而不是手动单击该行时。
我还尝试了grid.getView().select(0);
以及grid.getSelectionModel().selectFirstRow();
,但显然,这些都不是功能。
我的网格行似乎是由itemclick
函数选择的,根本不会被调用。
答案 0 :(得分:4)
你应该使用' selectionchange' ' Ext.selection.Model' 中的监听器,而不是' itemclick'在网格类中。在网格中单击行并以编程方式选择行时,将在两种情况下触发此侦听器。
代码可能是这样的:
Ext.create('Ext.grid.Panel', {
selModel: Ext.create('Ext.selection.Model', {
...
listeners: {
selectionchange: function( this, selected, eOpts ) {
// Write your listener here or fire another event in view controller
}
}
}
store: ...
});