Kendo UI Grid行拖拽排序异常:从底部向上拖拽无法正常生效
Kendo UI Grid行拖拽排序失效的原因及修复方案
你的代码里存在一个关键配置错误:schema 配置被放在了Grid的根层级,而它应该是 dataSource 的子属性。
Kendo Grid的行拖拽排序依赖数据源正确识别模型的ID字段(这里是RoomID),当schema不在dataSource内部时,数据源无法正确绑定模型结构,导致拖拽逻辑无法准确追踪行的身份,进而出现拖拽目标位置失效、行位置异常的问题。
修正后的代码
$(document).ready(() => { LoadRoomsGrid(); }); function LoadRoomsGrid() { $("#RoomsGrid").empty(); $("#RoomsGrid").kendoGrid({ dataSource: { data: roomData, // 将schema移到dataSource内部 schema: { model: { id: "RoomID", fields: { RoomID: { editable: false, hidden: true }, roomName: { editable: true, type: "string", hidden: false } } } } }, dataBound: (e) => { }, columns: [{ field: "RoomID", title: "RoomID", hidden: true }, { field: "RoomName", title: "Rooms" } ], noRecords: { template: "No Rooms" }, reorderable: { rows: true }, change: function(e) {} }); } const roomData = [{ RoomID: 1, RoomName: "Room 1" }, { RoomID: 2, RoomName: "Room 2" }, { RoomID: 3, RoomName: "Room 3" }, { RoomID: 4, RoomName: "Room 4" } ]
HTML部分保持不变即可。调整后,Grid就能正确识别模型ID,拖拽行排序的功能会正常工作。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

