2010-08-02 5 views
3

Я хочу создать такую ​​сетку: http://www.sencha.com/deploy/dev/examples/grid/edit-grid.htmlExtJs/Sencha: как выделить строку сетки после вставки?

На самом деле я уже сделал, но я хочу, чтобы выделить последнюю вставленную строку моей сетки (в ExtJS это функция подсветки(), которая делает yellowfade на элемент).

Мне не удалось это сделать ... моя проблема в том, что я не могу получить строку, которую я только что вставил, и, следовательно, я не могу выделить ее. Любые подсказки?

Заранее спасибо

ответ

0

Ext.data.store имеет надстройку слушателя, который передается индекс, на котором были вставлены записи

add : (Store this, Ext.data.Record[] records, Number index)

+0

Да, это, кажется, хороший способ найти товар. Но все же, как я могу получить доступ к сетке, например, скажем, grid.GetElement (index)? Я не могу найти что-то подобное. – Dajeff

+0

См. Ext.grid.RowSelectionModel – Mchl

1

Код имеет

store.insert(0, p); 

So разве вы просто не выделяете нулевую строку сразу после этого утверждения?

+0

Да, это на самом деле случай в редактируемой сетке. Но я хочу решение, которое работает для других сеток. На самом деле я хочу это реализовать: http://37signals.com/svn/archives/000558.php Я нашел решение, как указано ниже (функция выделения) – Dajeff

7

Вам нужно только сделать это (здесь строки номер один):

var row = grid.getView().getRow(0); 
Ext.get(row).highlight(); 

Это так просто.

+1

ExtJS 4.x: используйте 'getNode' вместо 'getRow'. –

1

да извините за ответ слишком поздно, использование Ext.grid.RowSelectionModel и чем функция использования selectLastRow и может легко будет в состоянии указать на это :)

+0

+1 Пробовал 3 или 4 других метода, размещенных на SO и около онлайн о том, как выделить строку, и используя методы в «RowSelectionModel», был первым, кто действительно работал. Благодаря! – Windle

0

Это будет идти внутри надстройке/создать событие кнопки , Код this.getSelectionModel().select(0); выделит первую строку, так как мы вставили в позицию 0, мы выбираем позицию 0. Этот код работает с ExtJS 4.2.0.

var rec = Ext.create('App.model.GridModel', { 
     id: '123', 
     name: 'ABC' 
    }); 

    this.store.insert(0, rec); 
    this.getSelectionModel().select(0); 
Смежные вопросы