Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.11.2010, 17:18
Аватар для cmygeHm
Профессор
Отправить личное сообщение для cmygeHm Посмотреть профиль Найти все сообщения от cmygeHm
 
Регистрация: 12.10.2010
Сообщений: 196

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);
}});


то выделения как-будто не было.
В чем же дело??
Спасибо.

Последний раз редактировалось cmygeHm, 29.11.2010 в 16:15.
Ответить с цитированием
  #2 (permalink)  
Старый 23.11.2010, 14:16
Ламер
Отправить личное сообщение для DooMer Посмотреть профиль Найти все сообщения от DooMer
 
Регистрация: 19.02.2010
Сообщений: 295

cmygeHm,
а вот это обьект рекорд ?
Ответить с цитированием
  #3 (permalink)  
Старый 26.11.2010, 09:15
Аватар для cmygeHm
Профессор
Отправить личное сообщение для cmygeHm Посмотреть профиль Найти все сообщения от cmygeHm
 
Регистрация: 12.10.2010
Сообщений: 196

Сообщение от DooMer Посмотреть сообщение
cmygeHm,
а вот это обьект рекорд ?
Вопрос немного не понятен.

Последний раз редактировалось cmygeHm, 29.11.2010 в 16:16.
Ответить с цитированием
  #4 (permalink)  
Старый 30.11.2010, 13:51
Аватар для cmygeHm
Профессор
Отправить личное сообщение для cmygeHm Посмотреть профиль Найти все сообщения от cmygeHm
 
Регистрация: 12.10.2010
Сообщений: 196

хм...
ап?
Ответить с цитированием
  #5 (permalink)  
Старый 30.11.2010, 18:13
Аспирант
Отправить личное сообщение для underW Посмотреть профиль Найти все сообщения от underW
 
Регистрация: 31.03.2009
Сообщений: 81

о, можно я буду 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 - я не знаю что это, не буду ничего выделять ибо я не знаю что выделять.
Ответить с цитированием
  #6 (permalink)  
Старый 30.11.2010, 18:28
Аспирант
Отправить личное сообщение для underW Посмотреть профиль Найти все сообщения от underW
 
Регистрация: 31.03.2009
Сообщений: 81

попробуй для начала вот так:
Ext.getCmp('grid_id').getSelectionModel().selectRecords([Ext.getCmp('grid_id').getStore().getById(1)], true);
Ответить с цитированием
  #7 (permalink)  
Старый 01.12.2010, 12:12
Аватар для cmygeHm
Профессор
Отправить личное сообщение для cmygeHm Посмотреть профиль Найти все сообщения от cmygeHm
 
Регистрация: 12.10.2010
Сообщений: 196

Капец!!!
Я до этого пробывал делать 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;
            }
            
}
Ответить с цитированием
  #8 (permalink)  
Старый 01.12.2010, 12:19
Аспирант
Отправить личное сообщение для underW Посмотреть профиль Найти все сообщения от underW
 
Регистрация: 31.03.2009
Сообщений: 81

я так понял, у тебя параметр id Record`a, не такой же как его позиция в таблице, ну типа у первой записи id не 1?

или не правильно понял?
Ответить с цитированием
  #9 (permalink)  
Старый 01.12.2010, 14:04
Аватар для cmygeHm
Профессор
Отправить личное сообщение для cmygeHm Посмотреть профиль Найти все сообщения от cmygeHm
 
Регистрация: 12.10.2010
Сообщений: 196

не такой. У каждой строки в гриде есть ид, соответствующий ИД записи в БД.
Теперь так: Сначала нахожу индекс строки в гриде по ИД в БД, а потом выделяю.
Ответить с цитированием
  #10 (permalink)  
Старый 01.12.2010, 17:59
VKS VKS вне форума
Профессор
Отправить личное сообщение для VKS Посмотреть профиль Найти все сообщения от VKS
 
Регистрация: 24.09.2010
Сообщений: 178

var dex = store.find('id', db_id_from_your_result);
var row = grid.getView().getRow(dex);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск