React中AgGrid基于单元格值的条件行拖拽问题排查
问题分析与解决方案
核心问题
你当前的rowDrag回调函数没有返回判断结果,导致AgGrid无法识别你的条件逻辑,所有行仍然保持可拖拽状态。
修正方案
不需要切换到非托管拖拽(rowDragManaged={false}),保持现有托管拖拽配置即可实现条件拖拽,只需要在rowDrag回调里明确返回布尔值:
修改后的列定义
{ field: "name", headerName: "File Name", sortable: true, filter: true, editable: true, cellStyle: { textAlign: "center", marginLeft: "-10px" }, cellRenderer: EditCellRenderer, rowDrag: (params: any) => { // 明确返回判断结果:type不为空时允许拖拽,为空则禁用 return params.data.type !== ""; }, }, { field: "type", headerName: "Type", sortable: true, filter: true, editable: false, }
补充说明
- 托管拖拽(
rowDragManaged={true})完全支持基于行数据的条件拖拽,没必要切换到非托管模式 rowDrag回调的返回值直接控制行的拖拽权限:返回true允许拖拽,false禁用拖拽- 其他原有配置(
rowDragEntireRow={true}、onRowDragEnd等)保持不变即可正常运行
内容的提问来源于stack exchange,提问作者meh93
相关产品推荐
相关产品推荐

