我正在尝试在网格中实现功能,当我们点击按钮(向左,向右,倒带,向前)时,我们需要将滚动(水平)位置移动到特定位置,就像我们需要移动滚动位置一样。我能够实现除左侧导航之外的所有内容。任何想法?
答案 0 :(得分: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