2013-01-16 38 views
1

我目前正在处理一个呈现特定元素的属性从SharePoint列表中获取的Web部件。重新排列SharePoint列表项目的最佳方式是什么?

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

问题:实现此目的的最佳方式是什么?(记住用户可能输入相同的值两次或忽略数字而不知道它)?

例:我们有元素和它们的顺序值:A 1B 2C 3D 4E 5

如果用户更改订单值:A 1B 4C 3D 4E 5,元件应在顺序呈现:ACBDE

如果用户更改订单价值:A 1B 7C 3D 4E 5,这些元素应该是为了渲染:ACDEB

+0

“elements”你的意思是列表项或列表字段(列)? –

+0

列表项。我已经找到了一个有人询问重新排序列表字段的主题,但这不是我需要的。 –

+0

你如何找回物品?通过SPQuery? – banana

回答

1

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

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

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

+0

我发现你的解决方案简单而优雅。在这个问题上我还发现了一些更有用的知识:http://blog.qumsieh.ca/2008/11/06/how-to-write-an-spquery-to-sort-your-list它运作良好。谢谢!我想表决你的答案,但可悲的是我没有足够的声誉... –

+0

我很高兴帮助... – banana

0

如果您创建一个新的SPField来存储列表项目顺序,您必须意识到这些值不会为每个用户定制。它们被分配到列表项,并且对于所有用户都是相同的。

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

但更实际的方式来处理您的要求将创建几个字段(CustomOrder1CustomOrder1等),随后,一些自定义视图,基于这些字段排序。

+0

也许我的问题不是很清楚(对此我很抱歉),但在我的问题中,我想集中讨论在没有任何每个用户设置的情况下实现订购本身的想法。但是,无论如何感谢这个链接,它可能在未来帮助我。 –

1

有外的所述列表项框溶液在SharePoint重排序2010

HTTP(S):// yousiteurl/_layouts /重新排序.aspx?List = ListGUID

重新排列项目后,您可以使用CAML查询使用item [“Order”]排序项目。

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

更多信息如何操作here

希望它能帮助,

安德鲁

+0

有趣,很高兴知道这件事。 – banana

+0

当然,很高兴知道,但对于这个具体问题,香蕉解决方案更多的是我所寻找的。 –

相关问题