Я пытаюсь реализовать функциональность в сетке, где, когда мы нажимаем кнопку (влево, вправо, перемотка вперед, вперед) нам нужно переместить положение прокрутки (горизонтальное) в конкретное положение, так как нам нужно переместить положение scroll. Я могу реализовать все, кроме только левой навигации. есть идеи?Extjs 5: нужно переместить положение прокрутки (горизонтальное) в конкретное положение (в столбце участника) в сетке
-1
A
ответ
0
Я не знаю, как получить горизонтальное положение прокрутки или положение столбца, поэтому я вычисляю его из column.getPosition() (он возвращает местоположение [x, y]).
Ext.create('Ext.Button', {
text : 'right',
renderTo : Ext.getBody(),
listeners: {
click: function() {
var grid = Ext.getCmp('grid1');
var columns = grid.getColumnManager().getColumns();
var index = getCurrentColumn(columns, true);
var p = columns[index+1].getPosition();
grid.scrollByDeltaX(p[0]);
}
}
});
function getCurrentColumn(columns, isMovingRight)
{
var index = 0;
for (var i=0; i<columns.length; i++){
// columns[i].getPosition() returns [x, y]
if (columns[i].getPosition()[0] == 0){
index = i;
break;
}
if (columns[i].getPosition()[0] > 0){
if (isMovingRight){
index = i-1;
}
else{
index = i;
}
break;
}
}
return index;
}
/* function for click forward button */
function getNextPageColumn(columns, gridWidth)
{
var index = -1;
for (var i=0; i<columns.length; i++){
if (columns[i].getPosition()[0] >= gridWidth){
index = i;
break;
}
}
return index;
}
Пример листание сетки программно https://fiddle.sencha.com/#fiddle/1bkm
поместить код, чтобы сделать ваш вопрос лучше –
Используйте 'scrollByDeltaX', [это ExtJS4 пример] (http://stackoverflow.com/questions/13545674/how-to-scroll-extjs-4-grid-horizontally), но он также работает с ExtJS5. –
Привет .. спасибо за ответ .. но scrollByDeltax работает только для правильного направления. Если я хочу двигаться влево, тогда он работает не так, как ожидалось ... – user3629299