Я новичок в Ext JS. Я работаю на панели сетки, в которой, когда я выбираю/выбираю любую из строк, тогда определенные данные, относящиеся к выбранной строке, отображаются на панели ниже сетки. Также, когда окно загружено, первое должно быть выбрано/выделено по умолчанию. В настоящее время панель сетки & отображается правильно. Даже данные, относящиеся к выбранной строке, отображаются на панели, но строка не подсвечивается. Я пробовал методы grid.focusRow(0)
& grid.getRow(0).highlight()
, но они не работают. Ниже мой код.Выделение/выбор строки сетки в ExtJS
//the js file code
initComponent : function() { //within the window instance
var single = false;
var store = new Ext.data.XmlStore({//all necessary fields added}); //store
HttpUtil.syncCall(this.url, "GET", this.loadStore, store,this);
var acctTplMarkup = [//the fields here are displayed on row selection ];
/*The template for displaying the details of the selected row */
this.acctTpl = new Ext.Template(acctTplMarkup);
//check for request type, if type is range of checks create the grid
if (single == false) {
var gridView = new Ext.grid.GridView();
var colModel = new Ext.grid.ColumnModel([ {
header : 'Status',
dataIndex : 'status'
}, {
header : 'Message',
dataIndex : 'message'
} ]);
var selModel = new Ext.grid.RowSelectionModel({
singleSelect : true
});
grid = new Ext.grid.GridPanel({
...
listeners : {
render : function(grid) {
Ext.getCmp('check').store.on('load',function(store, records, options) { //check is the id value for the window instance
grid.getSelectionModel().selectFirstRow();
});
}
}
}); //gridPanel
} //if
/* If request type is range select then display the grid */
...
if (single == false) {
grid.getSelectionModel().on('rowselect', function(sm, rowIdx, r) {
Ext.getCmp('check').acctTpl.overwrite(Ext.getCmp('detailPanel').body, r.data);
}); //rowselect
} //if
Ext.apply(this, {
...
listeners : {
'afterrender' : function(){
Ext.getCmp('check').acctTpl.overwrite(Ext.getCmp('detailPanel').body, this.store.getAt(0).data,true);
}
}
});
Check.superclass.initComponent.apply(this, arguments);
}, //initComponent
Данные из хранилища данных загружается & отображается должным образом, но только строка не выделена. Может ли кто-нибудь сказать мне, где я ошибся?
Эй, спасибо за ваш ответ. Я уже пробовал эти методы, но они не работают. Моя сетка завершена, но почему-то я не могу выделить первую строку. Есть ли другой путь? –
Вы получаете какие-либо ошибки в упомянутых методах? Все возможные способы решения проблемы приведут к дополнительным проблемам в будущем, поэтому лучше попробовать работать с существующим способом, прежде чем пытаться сделать что-либо самодельное. – Li0liQ
'getView(). GetRow' не существует в ExtJS 4; используйте 'getView(). getNode'. –