2

我目前正在开发一个呈现特定元素的 Web 部件,这些元素的属性取自 SharePoint 列表。

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

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

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

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

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

4

4 回答 4

1

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

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

这是一个使用它的例子:http: //msdn.microsoft.com/en-us/library/ms457534 (v=office.14).aspx

于 2013-01-16T14:12:12.300 回答
1

SharePoint 2010 中的列表项重新排序有现成的解决方案。

http(s)://yousiteurl/_layouts/Reorder.aspx?List=ListGUID

重新订购商品后,您可以使用 CAML 查询使用 item["Order"] 按您的商品订购。

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

可以在此处找到如何执行此操作的更多信息。

希望能帮助到你,

安德鲁

于 2013-01-17T07:13:07.950 回答
0

如果您创建一个新SPField的来存储列表项订单,您必须知道此值将无法按用户自定义。它们被分配给列表项并且对所有用户都是相同的。

我相信您应该看看创建具有自定义属性的 Web 部件主题。您可以将项目 ID 映射到每个用户个性化的自定义序号序列。然后,您可以覆盖默认顺序,并在一些客户端脚本的帮助下,您可以重新排列项目。当然,当使用分页显示项目时,事情可能会变得复杂。

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

于 2013-01-16T13:24:53.257 回答
0

这是最简单的解决方案。激活链表重新排序按钮。 https://pgbhoyar.com/2013/05/15/how-to-reorder-sharepoint-list-items-using-custom-codepowershell-and-sharepoint-designer-in-sharepoint-2010-and-sharepoint-2013- 2/

于 2016-08-02T09:07:57.023 回答