低版本 $('#datagrid2').treegrid('getSelected') 对子集数据进行上移、下移
时间: 2023-09-14 12:03:21 浏览: 68
Ext grid中数据上移下移
如果是低版本的 `treegrid` 组件,可以使用以下代码实现子集数据的上移、下移:
```
// 获取选中的节点
var selectedNode = $('#datagrid2').treegrid('getSelected');
// 获取选中节点的父节点
var parentNode = $('#datagrid2').treegrid('getParent', selectedNode.id);
// 获取选中节点在父节点下的索引
var index = -1;
for (var i = 0; i < parentNode.children.length; i++) {
if (parentNode.children[i].id == selectedNode.id) {
index = i;
break;
}
}
// 上移节点
if (direction == 'up') {
// 如果已经是第一个节点,则无法上移
if (index == 0) {
return;
}
// 获取上一个兄弟节点
var prevNode = parentNode.children[index - 1];
// 交换节点位置
var temp = prevNode.children;
prevNode.children = selectedNode.children;
selectedNode.children = temp;
temp = prevNode._parentId;
prevNode._parentId = selectedNode._parentId;
selectedNode._parentId = temp;
$('#datagrid2').treegrid('refresh', prevNode.id);
$('#datagrid2').treegrid('refresh', selectedNode.id);
}
// 下移节点
else if (direction == 'down') {
// 如果已经是最后一个节点,则无法下移
if (index == parentNode.children.length - 1) {
return;
}
// 获取下一个兄弟节点
var nextNode = parentNode.children[index + 1];
// 交换节点位置
var temp = nextNode.children;
nextNode.children = selectedNode.children;
selectedNode.children = temp;
temp = nextNode._parentId;
nextNode._parentId = selectedNode._parentId;
selectedNode._parentId = temp;
$('#datagrid2').treegrid('refresh', nextNode.id);
$('#datagrid2').treegrid('refresh', selectedNode.id);
}
```
其中,`direction` 表示移动方向,可以是 `'up'` 或 `'down'`。需要注意的是,移动节点时需要手动交换节点的 `children` 和 `_parentId` 属性,并且需要手动刷新交换节点的父节点和当前节点。
阅读全文