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

时间:2012-01-18 17:08:44

标签: jquery sorting jquery-ui-sortable

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

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

这一切都很好,看看这些例子似乎是大多数人这样做的正常方式。

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

有没有人有更有效的方法呢?

感谢。

1 个答案:

答案 0 :(得分:1)

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

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