我正在开发一个网络应用程序,显示用户的产品列表(比如10个项目)。用户可以选择按价格,品牌等对结果进行排序。数据是从数据库加载的,它是非常小的列表。如何根据属性对结果进行排序,这些属性是常量。启发我实施客户端排序。 dojo toolkit 是否提供了根据用户输入对小列表进行排序的任何内容。
我确信客户端排序的原因是:
如果我错了,请纠正我;另外,如果这种方法有任何问题,请告诉我/我是否遗漏了重要内容?
寻找有价值的评论。
提前致谢。
编辑:确切地说,我正在设计一个愿望清单,它只选择了项目。用户可以选择按价格(从低到高或反之亦然),品牌名称(A-Z或Z-A)进行排序。 我将显示整行,我需要根据组合框选择提供对行的所有属性的排序。我可以使用dojo AJAX或简单的JavaScript来实现这一点吗?
答案 0 :(得分:1)
您可能希望为此使用AJAX,因为如果用户按其他列排序,例如价格,她会想要最便宜的产品,而不仅仅是你所展示的产品。我不确定Dojo有什么用于做Ajax,但在Prototype中,它很简单:
http://prototypejs.org/learn/introduction-to-ajax
如果您真的只想对当前显示的项目进行排序,请使用Array.sort:
https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/sort
假设您的商品在表格中显示为行。使用Prototype,您可以将它们收集到一个数组中:
var items = $$('tr.item');
然后,您将使用sort方法对items
数组进行排序:
items.sort(function (i1, i2) {
return price(i1) - price(i2);
})
然后,替换表中的内容:
var t = $$('table.items');
t.update();
items.each(function (i) { t.appendChild(i); });