1

我正在尝试创建一个函数,当在某一行上单击箭头链接(向上或向下)时,该行将向上或向下移动。

有没有办法以这种方式动态移动数据中的行?

(我知道有 RowMoveManager 但需求请求箭头链接而不是可拖动)

4

2 回答 2

1

我找到了一种方法,尽管它可能不是最有效的方法。我的数据中有一个列,排名,我在箭头 moveOneUp(index); 上添加了一个 onClick 函数;

function moveOneUp(rowIndex) {
        _grid.dataView.getItem(rowIndex).rank = parseInt(_grid.dataView.getItem(rowIndex).rank)-1 ;
        _grid.dataView.getItem(rowIndex-1).rank = parseInt(_grid.dataView.getItem(rowIndex-1).rank)+1;
        _grid.dataView.fastSort('rank');
}

如果有人需要其余的箭头功能:

function moveOneDown(rowIndex) {
    _grid.dataView.getItem(rowIndex).rank = parseInt(_grid.dataView.getItem(rowIndex).rank)+1 ;
    _grid.dataView.getItem(rowIndex+1).rank = parseInt(_grid.dataView.getItem(rowIndex+1).rank)-1;
    _grid.dataView.fastSort('rank');
}

function moveTop(rowIndex) {
    _grid.dataView.getItem(rowIndex).rank = 0 ;
    _grid.dataView.fastSort('rank');
}


function moveBottom(rowIndex) {
    _grid.dataView.getItem(rowIndex).rank = parseInt(_grid.dataView.getLength())+1;
    _grid.dataView.fastSort('rank');
}
于 2013-03-06T21:06:52.847 回答
0
function moveOneUp(rowIndex) {
    dataViewReorder.beginUpdate();
    rowIndex = rowIndex - 1;
    dataViewReorder.getItem(rowIndex).intOrd0 = parseInt(dataViewReorder.getItem(rowIndex).intOrd0) - 1;        
    dataViewReorder.getItem(rowIndex - 1).intOrd0= parseInt(dataViewReorder.getItem(rowIndex - 1).intOrd0) + 1;
    dataViewReorder.fastSort('intOrd0');

    dataViewReorder.setItems(dataReorder);
    dataViewReorder.endUpdate();

    gridReorder.setData(dataViewReorder);
    gridReorder.render();
}
function moveOneDown(rowIndex) {
    dataViewReorder.beginUpdate();
    rowIndex = rowIndex - 1;
    dataViewReorder.getItem(rowIndex).intOrd0= parseInt(dataViewReorder.getItem(rowIndex).intOrd0) + 1;
    dataViewReorder.getItem(rowIndex + 1).intOrd0= parseInt(dataViewReorder.getItem(rowIndex + 1).intOrd0) - 1;
    dataViewReorder.fastSort('intOrd0');

    dataViewReorder.setItems(dataReorder);
    dataViewReorder.endUpdate();

    gridReorder.setData(dataViewReorder);
    gridReorder.render();
}
于 2014-04-07T11:22:07.727 回答