grid.getSelectionModel().selectRow / Rows / Records
Привет ВСем!
Как видно по сабжу пытаюсь выделить определенную строку грида. Выделять - выделяю любым из трех способов. Например так: Ext.getCmp('grid_id').getSelectionModel().selectRecords([Ext.getCmp('grid_id').store.getById(jsonData.id)], true); Но если я делаю лоад грида, а затем выделяю: Ext.getCmp('grid_id').store.load({callback: function(){ Ext.getCmp('grid_id').getSelectionModel().selectRecords([Ext.getCmp('grid_id').store.getById(jsonData.id)], true); }}); то выделения как-будто не было. В чем же дело?? Спасибо.:victory: |
cmygeHm,
а вот это обьект рекорд ? |
Цитата:
|
хм...
ап? |
о, можно я буду ExtJS?
что от меня хотят: Ext.getCmp('grid_id').getSelectionModel().selectRecords([Ext.getCmp('grid_id').store.getById(jsonData.id)], true); так, ага, взять компонент с id='grid_id' - готово вернуть модель выделения - готово попросить эту модель выделить строки, угу, хорошо, а какие строки? взять компонент id='grid_id' обратится к его сторе взять запись по id по какому id? jsonData.id - я не знаю что это, не буду ничего выделять ибо я не знаю что выделять. |
попробуй для начала вот так:
Ext.getCmp('grid_id').getSelectionModel().selectRecords([Ext.getCmp('grid_id').getStore().getById(1)], true); |
Капец!!! :)
Я до этого пробывал делать Ext.getCmp('grid_id').getStore().getById(1)] и работало. как выяснилось - именно здесь ошибка, в jsonData.id данные были. потому что я вместо них пробывал писать и один и др. Строка Ext.getCmp('grid_id').getStore().getById(суще� �тв_ид)] не работает, написал свою функцию нахождения индекса по ид и все ок: function getRowIndexById(grid_id, row_id) { var t = Ext.getCmp(grid_id).getStore(); for (var i=0; i<t.data.items.length; i++) { if (t.data.items[i].data.id==row_id) return i; } } |
я так понял, у тебя параметр id Record`a, не такой же как его позиция в таблице, ну типа у первой записи id не 1?
или не правильно понял? |
не такой. У каждой строки в гриде есть ид, соответствующий ИД записи в БД.
Теперь так: Сначала нахожу индекс строки в гриде по ИД в БД, а потом выделяю. |
var dex = store.find('id', db_id_from_your_result); var row = grid.getView().getRow(dex); |
Часовой пояс GMT +3, время: 17:34. |