I am trying to implement the functionality in grid where when we click the button(left,right,rewind,forward) we need to move the scroll (horizantal) position to the particular position like we need to move the position of scroll.I am able to implement all except only the left side navigation. any ideas?
Asked
Active
Viewed 697 times
-1
-
put some code to make your question better – Surya Prakash Tumma Jun 07 '16 at 02:02
-
Use `scrollByDeltaX`, [this is an ExtJS4 Example](http://stackoverflow.com/questions/13545674/how-to-scroll-extjs-4-grid-horizontally) but it also works with ExtJS5. – Yasuyuki Uno Jun 07 '16 at 02:51
-
Hi..thanks for the reply..but scrollByDeltax is working only for right direction..if I want to move left side then it's not working as expected... – user3629299 Jun 07 '16 at 04:16
1 Answers
0
I don't know how to get horizontal scroll position or column position, hence I calculate it from column.getPosition() (it returns [x, y] location).
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;
}
Example scrolling a grid programmatically https://fiddle.sencha.com/#fiddle/1bkm

Yasuyuki Uno
- 2,417
- 3
- 18
- 22