我在 CMS 应用程序中有一个页面的树形表示。我了解如何将树持久保存在数据库中。但是,我没有一个好的方法:

A) 对特定父页面下的子页面重新排序。
B) 提供允许用户更改顺序的 UI 实现。

有什么建议么?

有帮助吗?

解决方案

更改顺序本身需要您将某种顺序与数据库中的每个页面一起存储。当前的最高/最低值 +/- 1 可能是一个很好的起点。一旦你在那里进行了排序,重新排序就变成了交换两个值或将一页的值更改为其他两个值之间的情况(我猜你可以使用浮点数,但如果你将其拆分太多,则可能需要重新编号)次)。

不管怎样,一旦你有了它,你就需要一个用户界面。我见过一种非常简单的“将其与上面/下面的交换”方法,可以是简单的 Web 链接或 AJAX 调用。您还可以向用户呈现所有页面值,并要求他们根据需要重新编号。如果您想变得更奇特,JavaScript 拖放可能是一个不错的方法。我用过 扩展JS穆工具 作为此类领域的框架。如果你不需要所有的 Extjs 小部件,我会说将来远离它,看看像 Mootools 这样的东西 动态可排序演示.

其他提示

A)我有一个类似的 CMS 应用程序,我在特定树的页面中存储序号值,并根据该值进行排序 - 因为我的很多页面出现在完全不同的站点中,所以我必须针对页面/树维护序号组合。

B)我也想要一个更好的方法来做到这一点。目前,他们单击树视图中的节点,在主页面屏幕中,他们可以移动页面。我尝试过使用 java 脚本和其他解决方案进行拖放,但如果没有大量的手动操作,我的用户将永远无法使用它。我会对对此的回应感兴趣。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top