Выделите выделение в сетке ExtJS - PullRequest
5 голосов
/ 21 мая 2010

Эй, мне нужно иметь возможность прокрутить мою сетку ExtJS к текущему выбору, но я не знаю, как это сделать. Я нашел на форуме ссылку на метод sureVisible, но не могу найти никакой информации. Кто-нибудь может сделать какие-либо предложения? Спасибо

Ответы [ 8 ]

9 голосов
/ 07 мая 2013

Это также, кажется, работает:

grid.getView().focusRow(rowIdx);
9 голосов
/ 15 марта 2012

К сожалению, sureVisible () был удален из ExtJS 4. Самое простое решение, которое я нашел, это использовать scrollIntoView (). В моем случае это было после выбора строки на основе загруженного мной значения.

var rowIndex = store.find('fieldName', value);
grid.getSelectionModel().select(rowIndex);
Ext.fly(grid.getView().getNode(rowIndex)).scrollIntoView();

Это покажет выбранную строку в нижней части сетки. Нужно было бы проделать дополнительную работу, чтобы она находилась в верхней или средней части сетки.

5 голосов
/ 24 января 2013

Это также, кажется, работает:

    grid.getView().getRow(rowIdx).scrollIntoView();
4 голосов
/ 02 августа 2016

У меня работал на ExtJS 6, даже с включенным bufferedRenderer.

        var record = grid.getSelectionModel().selected.getRange()[0];
        grid.getView().focusRow(record);
3 голосов
/ 29 декабря 2015

Это тоже похоже на работу

grid.getView().getNode(rowIndex).scrollIntoViewIfNeeded();

В случае ExtJs 4.X Не нужно использовать Ext.fly

2 голосов
/ 21 мая 2010

Извините, я действительно тупой. Я только что попробовал убедиться, что Visible работает нормально.

1 голос
/ 15 апреля 2016

Чтобы сэкономить вам много сил, вы должны знать, что решения в этой теме для прокрутки в поле зрения не будут работать, если включена сетка bufferedRenderer . *

Насколько я понимаю, в Ext JS 5 bufferedRenderer включен по умолчанию.

Мне потребовалось пару часов, чтобы я понял это.

grid.getView (). GetNode (rowIndex) вернет NULL, если индексированная строка находится за пределами буферизованных строк.

0 голосов
/ 10 ноября 2016

По крайней мере в 4.2, использование scrollIntoViewIfNeeded завершится неудачно, если вы находитесь за пределами буферизованного диапазона в bufferedRenderer. BufferedRenderer имеет удобный метод scrollTo, чтобы помочь с этой задачей:

grid.getView().bufferedRenderer.scrollTo(index, true);

Прокручивает и дополнительно выбирает указанный индекс строки в общем наборе данных.

http://docs.sencha.com/extjs/4.2.0/#!/api/Ext.grid.plugin.BufferedRenderer-method-scrollTo

...