重新排序SharePoint列表项的最佳方法是什么?

时间:2013-01-16 13:03:26

标签: c# sharepoint sharepoint-2010

我目前正在开发一个Web部件,该部件呈现从SharePoint列表中获取属性的特定元素。

我打算在SP列表中添加一个字段,允许SharePoint用户输入一个数字来指定要在其中呈现元素的顺序。

问题:实现此目的的最佳方法是什么(请记住,用户可以输入相同的值两次,或者在不知情的情况下按顺序省略一个数字)?

示例:我们有元素及其订单值:A 1B 2C 3D 4E 5

如果用户将订单值更改为:A 1B 4C 3D 4E 5,则应按顺序呈现元素: ACBDE

如果用户将订单值更改为:A 1B 7C 3D 4E 5,则应按顺序呈现元素:ACDEB

4 个答案:

答案 0 :(得分:1)

我建议你使用SPQuery,它也应该更有效率。

使用SPQuery时,您可以根据需要指定OrderBy

以下是使用它的示例:http://msdn.microsoft.com/en-us/library/ms457534(v=office.14).aspx

答案 1 :(得分:1)

SharePoint 2010中的列表项重新排序具有开箱即用的解决方案。

HTTP(S)://yousiteurl/_layouts/Reorder.aspx列表= ListGUID

重新订购商品后,您可以使用CAML查询按商品订单[“订单”]。

您可以在页面上的模态对话框中调用此页面,或使用自定义操作将其集成到功能区中。

有关如何执行此操作的详细信息,请访问here

希望它有所帮助,

安德鲁

答案 2 :(得分:0)

如果您创建新的SPField来存储列表项目顺序,则必须注意每个用户无法自定义此值。它们被分配给列表项,并且对所有用户都是相同的。

我相信你应该看看Creating a Web Part with Custom Properties主题。您可以使用按用户个性化的自定义序号映射项目ID。然后,您可以覆盖默认顺序,并在某些客户端脚本的帮助下,您可以重新排列项目。当然,当使用分页显示项目时,事情会变得复杂。

但是,更符合您要求的更现实的方法是创建多个字段(CustomOrder1CustomOrder1等),然后创建一些基于这些字段排序的自定义视图。

答案 3 :(得分:0)