在ag-Grid 24版本中,确实存在enableMultiRowDragging功能无效的问题。这个问题已经在ag-Grid的GitHub上得到了确认,并且已被标记为待修复的问题。
目前,有一种解决方法是通过自定义函数来实现多行拖拽的功能。下面是一个示例代码:
// 定义一个全局变量,用于存储被拖拽的行数据
let draggedRowsData = [];
// 在columnDefs中添加自定义的拖拽处理函数
const columnDefs = [
{ headerName: '名称', field: 'name' },
{ headerName: '年龄', field: 'age' },
{ headerName: '性别', field: 'gender' },
{ headerName: '国家', field: 'country' },
{
headerName: '操作',
field: '',
cellRenderer: 'dragHandleRenderer', // 使用自定义的渲染器来显示拖拽图标
width: 80,
enableRowDragging: true, // 启用行拖拽
onRowDragEnter: onRowDragEnter, // 拖拽进入行的回调函数
onRowDragEnd: onRowDragEnd // 拖拽结束的回调函数
}
];
// 自定义的拖拽进入行的回调函数
function onRowDragEnter(params) {
// 将拖拽的行数据保存到全局变量中
draggedRowsData = params.api.getSelectedRows();
}
// 自定义的拖拽结束的回调函数
function onRowDragEnd(params) {
// 获取拖拽的目标行数据
const targetRowData = params.node.data;
// 在这里实现拖拽处理逻辑
// 可以使用draggedRowsData和targetRowData进行处理
// 清空全局变量
draggedRowsData = [];
}
请注意,上述代码只是一个示例,实际拖拽处理逻辑需要根据具体情况进行编写。
此外,如果你希望使用官方修复的版本,可以关注ag-Grid的GitHub上的进展,等待他们发布修复此问题的更新版本。