这篇文章是我之前的文章(here)的延续,我还没有找到一个可行的解决方案。简而言之:我创建了一个Extjs(4.X)网格,其中包含父母和孩子的记录。记录是按排序顺序排列的,其中子级中的记录总是出现在其父级的正下方,如图所示,其中“P”指定一个记录为父级,而“C”指定一条记录为子级。
“May”是Peter的父母,Odin是Thor和Loki的父母,Bruce没有孩子被标记为parent(独立实体)
小提琴:https://fiddle.sencha.com/#view/editor&fiddle/3jks
当我上下移动组时,我希望改变父母的排序顺序,同时也带着他们的孩子。起初我想尝试拖放,但我找不到一个可行的解决方案(我尝试了Gird DragAndDrop和TreeGrid,提琴在我以前的post上)。
根据前一篇公开帖子上的建议,我尝试了分组父组和子组,但我无法拖放整个组。为了利用我所掌握的知识,我创建了按钮,用于根据用户单击向上或向下移动组。分组是基于排名列的,所以只要我更新排名,记录就应该理想地跳转分组。由于某种原因,当我单击Rank:2组上的“UP”按钮时,BRUCE更改为Rank:1,May Parker更改为Rank:2,这是正确的,但Peter Parker仍保持在Rank:1.调试代码后,我发现商店出于某种原因删除了Peter的记录,并将其替换为May Parke的另一个副本(但网格没有显示它)。我把控制台消息放在我们可以观察到的地方。这里可能有什么问题?非常感谢您的指点和建议。如果有更好的方法根据等级移动这些记录,我也愿意改变整个逻辑。
1条答案
按热度按时间6g8kf2rb1#
这里是网格石斑鱼头部拖放的工作提琴。
以下是构建up-down按钮示例的详细信息和一些帮助:
您正在多次更新记录。
我建议您通过recordId设置排名,以确保每个项目只处理一次。否则,在处理切换组时会记录它们。