在SharePoint列表中,我想要一个自动编号列,当我添加到列表时会增加。我怎么能最好地解决这个问题呢?
答案 0 :(得分:53)
Sharepoint Lists自动拥有一个“ID”列,该列自动递增。您只需从“修改视图”屏幕中选择此列即可查看。
答案 1 :(得分:9)
您无法将新的唯一自动生成的ID添加到SharePoint列表中,但已经存在一个!如果您编辑“所有项目”视图,您将看到没有选中显示选项的列列表。
这些列中有相当多的列存在,但从未显示过,如“Created By”和“Created”。这些字段在SharePoint中使用,但默认情况下不显示它们,以免使显示混乱。您无法编辑这些字段,但可以将其显示给用户。如果您选中ID字段旁边的“显示”框,您将在列表中显示一个唯一且自动生成的ID字段。
答案 2 :(得分:5)
如果您想控制唯一标识符的格式,可以create your own <FieldType>
in SharePoint。 MSDN也有一个visual How-To。这基本上意味着您正在创建自定义列。
WSS定义Counter字段类型(这是上面的ID列使用的)。我从来没有必要重复使用它或扩展它,但它应该是可能的。
如果不创建自定义<FieldType>
,则可能存在解决方案。例如:如果您想要CUST1,CUST2等唯一ID,则可以创建一个Calculated列,并使用公式(="CUST" & [ID]
)中ID列的值。我没试过这个,但应工作:)
答案 3 :(得分:4)
我在自定义列表中遇到此问题,虽然无法使用自动生成的 ID 列创建计算列,但可以使用工作流来完成繁重的工作。
我创建了一个类型为 Number 的新工作流变量,并将其设置为当前项中 ID 列的值。然后,只需计算自定义列值并设置它 - 在我的情况下,我只需要编号从100,000开始。
答案 4 :(得分:1)
默认情况下它在那里。这是id领域。
答案 5 :(得分:1)
如果您想要所有列表中的ID列以外的内容,您可能不得不求助于列表中的“事件接收器”,该“事件接收器”“计算”您的唯一标识值应该是什么,或者使用自定义具有所需逻辑的字段类型。遗憾的是,这两个选项都需要编写和部署自定义代码到服务器并将程序集部署到GAC,这在您无法完全控制服务器的环境中可能会不受欢迎。
如果您不需要立即显示唯一标识符,则可以通过工作流(使用SharePoint Designer或Visual Studio中内置的自定义WF工作流)生成它。
不幸的是,计算列似乎是一个显而易见的解决方案,不能用于此目的,因为在尝试计算时尚未分配ID。如果您在事后进入并编辑项目,计算可能会达到您想要的效果,但在初始创建新项目时,它将无法正确计算。
答案 6 :(得分:1)
如上所述,sharepoint中的所有对象都包含某种唯一标识符(通常是列表项的基于整数的计数器和列表的GUID)。
尽管如此,http://www.codeplex.com/features还有一个名为“唯一列策略”的功能,旨在添加具有唯一值的其他列。完整的文章可在http://scothillier.spaces.live.com/blog/cns!8F5DEA8AEA9E6FBB!293.entry
处获得答案 7 :(得分:1)
所以我不确定我是否真的能够想到为什么你实际上需要一个“网站集独特”ID,所以也许你可以发表评论并让我们知道这里实际上要完成什么...
无论哪种方式,如果真的需要它,所有项目都有一个GUID的UniqueID属性:http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistitem.uniqueid.aspx
答案 8 :(得分:0)
Peetha有最好的主意,我在SP网站上的自定义列表也是如此。使用工作流程来自动增加是最好的方法,并不是那么困难。查看此网站:http://splittingshares.wordpress.com/2008/04/11/auto-increment-a-number-in-a-new-list-item/
我非常感谢发布该解决方案的人,非常酷!!