jQuery UI 可对巨型列表进行排序并保存在数据库中

标签 jquery sorting jquery-ui-sortable

我使用 jQuery UI 的可排序列表来允许用户拖动和更改列表的排序。

我通常会取回每个项目的 id 和数组键,然后更新数据库中每行的排序号。

这一切都很好,并且查看示例,这似乎是大多数人的正常做法。

我想知道的是,对每个项目运行 UPDATE 查询是否是存储排序顺序的最有效方法?上面的方法适用于一些项目,但如果我有一个包含 200 个项目的列表怎么办?仅仅为了将项目 2 移至第一个位置而运行 UPDATE 查询 200 次似乎过多。

有人有更有效的方法吗?

谢谢。

最佳答案

如果您要跟踪每个项目的位置,则只需更新那些已更改项目的位置即可。即,如果将项目 #19 移动到位置 1,则将项目 1-18 向上移动一个位置。您不必更改第 20-200 项的位置。

此外,如果您使用 .NET/SQL Server 2008,则可以使用用户定义的表类型 (UDTT) 并将数据表作为参数之一传递给存储过程,该存储过程包含所有项目的列表和他们当前的列表位置,然后对数据集而不是单独对每个项目进行更新。没有 RBAR :-)

关于jQuery UI 可对巨型列表进行排序并保存在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8914244/

相关文章:

jquery - 单击单选按钮时,将类添加到父级

c# - asp.net 多个文件上传控件的多个上传

javascript - 如何在 <textarea> 中显示不可见字符

html - JQuery Sortable Scroll,会向上滚动但不会向下滚动

jquery-ui - jqueryui 可以用键盘排序吗?

javascript - $.ajax json GET 在页面加载后恢复所有 jquery

c++ - 仅用 10 万个存储单元对 100 万个数字进行排序

C# 自定义排序。所有 N 后跟 ASC 顺序

javascript - 返回一个与另一个数组中的任何项目都不匹配的数组项目?

jquery无序列表转有序列表