SharePoint列表自动带有一个名为“ID”的列,该列会自动递增。您只需从“修改视图”屏幕中选择此列即可查看它。
<FieldType>
。MSDN还有一个可视化操作指南。这基本上意味着您正在创建自定义列。<FieldType>
的解决方案。例如:如果您想要像CUST1、CUST2这样的唯一标识符,可能可以创建一个计算列,并在公式中使用ID列的值(="CUST" & [ID]
)。我没有尝试过这个,但这应该可以工作 :)如果你想要超越所有列表中的ID列,你可能需要在列表上使用事件接收器来“计算”你的唯一标识的值,或者使用具有所需逻辑嵌入的自定义字段类型。不幸的是,这两个选项都需要编写和部署自定义代码到服务器,并将程序集部署到GAC,这在你无法完全控制服务器环境的情况下可能会受到质疑。
如果你不需要立即显示唯一标识符,你可以通过工作流来生成它(可以使用SharePoint Designer或在Visual Studio中构建的自定义WF工作流)。
不幸的是,计算列似乎是一个明显的解决方案,但对于这个目的不起作用,因为当尝试进行计算时,ID尚未分配。如果你事后编辑项目,计算可能会实现你想要的效果,但在创建新项目时,计算将无法正确执行。
如上所述,SharePoint 中的所有对象都包含某种唯一标识符(通常是基于整数的计数器用于列表项,以及 GUID 用于列表)。
话虽如此,在 http://www.codeplex.com/features 上也有一个名为“唯一列策略”的功能,旨在添加另一列具有唯一值。完整的撰写可在 http://scothillier.spaces.live.com/blog/cns!8F5DEA8AEA9E6FBB!293.entry 中找到。
所以我不确定为什么你实际上需要一个“网站集合唯一”标识符,也许你可以发表评论并让我们知道这里实际上想要实现什么...
无论如何,如果你真的需要,所有项都有一个UniqueID属性,它是GUID:http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistitem.uniqueid.aspx
它默认就在那里。它是id字段。
Peetha有最好的想法,我在我们的SP网站上使用自定义列表也做了同样的事情。使用工作流自动递增是最好的方法,而且并不难。看看这个网站:http://splittingshares.wordpress.com/2008/04/11/auto-increment-a-number-in-a-new-list-item/。
我非常感激发布该解决方案的人,它非常酷!