благодаря помощи некоторых из вас у меня есть это:сосредоточиться на строке в ExtJS
Ext.define('PersistantSelectionGridPanel', {
extend: 'Ext.grid.Panel',
selectedRecords: [],
initComponent: function() {
this.callParent(arguments);
this.getStore().on('beforeload', this.rememberSelection, this);
this.getView().on('refresh', this.refreshSelection, this);
},
rememberSelection: function (selModel, selectedRecords) {
this.selectedRecords = this.getSelectionModel().getSelection();
},
refreshSelection: function() {
if (0 >= this.selectedRecords.length) {
return;
}
var newRecordsToSelect = [];
for (var i = 0; i < this.selectedRecords.length; i++) {
record = this.getStore().getById(this.selectedRecords[i].getId());
if (!Ext.isEmpty(record)) {
newRecordsToSelect.push(record);
}
}
this.getSelectionModel().select(newRecordsToSelect);
}
});
var grid = Ext.create('PersistantSelectionGridPanel', {
//autoscroll: true,
region: 'center',
autoHeight: true,
store: ND.commList,
stateful: true,
loadMask: false,
multiSelect: true,
//forceFit: true,
layout: 'fit',
stateId: 'stateGrid',
viewConfig: {
stripeRows: true
},
columns: [
{
text: 'Vehicle',
width: 60,
flex: 0,
sortable: true,
dataIndex: 'designationId'
},
// more code
]
// more code
});
Когда строка выбрана она остается выделенным после обновления. Теперь список длиннее, и вы можете прокручивать список. После обновления выбирается только правильная строка. Мне еще нужно прокрутить эту запись. Как я могу сосредоточиться на этой строке после обновления?
Toby
focusRow требует номер строки, newRecordsToSelect [0] содержит запись, поэтому этот точный фрагмент может не работать. –
'focusRow()' также принимает объекты Ext.data.Model не только числа, [здесь это находится в документах] (http: //docs.sencha.com/ext-js/4-0/#!/api/Ext.view.Table-method-focusRow). newRecordsToSelect [0] оказывается объектом 'Ext.data.Model'. – Geronimo
Вы правы (+1). я имел в виду документы 3.4.x, где он не –