我目前正在开发一个Web部件,该部件呈现从SharePoint列表中获取属性的特定元素。
我打算在SP列表中添加一个字段,允许SharePoint用户输入一个数字来指定要在其中呈现元素的顺序。
问题:实现此目的的最佳方法是什么(请记住,用户可以输入相同的值两次,或者在不知情的情况下按顺序省略一个数字)?
示例:我们有元素及其订单值:A 1
,B 2
,C 3
,D 4
,E 5
。
如果用户将订单值更改为:A 1
,B 4
,C 3
,D 4
,E 5
,则应按顺序呈现元素: A
,C
,B
,D
,E
。
如果用户将订单值更改为:A 1
,B 7
,C 3
,D 4
,E 5
,则应按顺序呈现元素:A
,C
,D
,E
,B
。
答案 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。然后,您可以覆盖默认顺序,并在某些客户端脚本的帮助下,您可以重新排列项目。当然,当使用分页显示项目时,事情会变得复杂。
但是,更符合您要求的更现实的方法是创建多个字段(CustomOrder1
,CustomOrder1
等),然后创建一些基于这些字段排序的自定义视图。
答案 3 :(得分:0)