SharePoint列表中的自动编号列

30
在SharePoint列表中,我想要一个自动编号的列,随着我添加到该列表中,该列会自动增加。我该如何实现这个功能?

您可以使用JSOM获取列表项的计数,然后根据您的喜好构建顺序号 - Mohamed
哦我的天啊,12年过去了,这仍然是个噩梦! - user882670
9个回答

56

SharePoint列表自动带有一个名为“ID”的列,该列会自动递增。您只需从“修改视图”屏幕中选择此列即可查看它。


1
请注意,如果您尝试从偏移量开始编号或设置自定义前缀/后缀,则无法在计算列中使用ID列。在新项目创建后,可以使用触发器为列表添加项的工作流程来基于ID列设置列值。 - David Clarke

9
您无法在 SharePoint 列表中添加新的唯一自动生成的ID,但实际上已经有一个存在了!如果您编辑“所有项目”视图,您会看到一列未选中显示选项的列。
有很多这样的列存在,但从不显示,例如“创建者”和“创建时间”。这些字段在 SharePoint 中使用,但默认情况下不显示以避免显示混乱。您无法编辑这些字段,但可以将它们显示给用户。如果您在 ID 字段旁边选中“显示”框,则会在列表中显示一个唯一且自动生成的 ID 字段。
请查看:SharePoint 列表中的唯一 ID

5
如果您想控制唯一标识符的格式,可以在SharePoint中创建自己的<FieldType>。MSDN还有一个可视化操作指南。这基本上意味着您正在创建自定义列。
WSS定义了计数器字段类型(上面的ID列正在使用它)。我从未有过重复使用或扩展它的需要,但应该是可能的。
可能存在一种无需创建自定义<FieldType>的解决方案。例如:如果您想要像CUST1、CUST2这样的唯一标识符,可能可以创建一个计算列,并在公式中使用ID列的值(="CUST" & [ID])。我没有尝试过这个,但这应该可以工作 :)

2
这实际上不起作用。它会抛出以下异常:“该公式包含对字段的引用。” - turezky

4
我遇到了一个自定义列表的问题,虽然无法使用自动生成的 ID 列创建计算列,但可以使用工作流来完成繁重的工作。
我创建了一个新的工作流变量,类型为 Number 并将其设置为当前项中 ID 列的值。然后只需计算自定义列值并设置它即可。在我的情况下,我只需要从100,000开始编号。

enter image description here


1

如果你想要超越所有列表中的ID列,你可能需要在列表上使用事件接收器来“计算”你的唯一标识的值,或者使用具有所需逻辑嵌入的自定义字段类型。不幸的是,这两个选项都需要编写和部署自定义代码到服务器,并将程序集部署到GAC,这在你无法完全控制服务器环境的情况下可能会受到质疑。

如果你不需要立即显示唯一标识符,你可以通过工作流来生成它(可以使用SharePoint Designer或在Visual Studio中构建的自定义WF工作流)。

不幸的是,计算列似乎是一个明显的解决方案,但对于这个目的不起作用,因为当尝试进行计算时,ID尚未分配。如果你事后编辑项目,计算可能会实现你想要的效果,但在创建新项目时,计算将无法正确执行。


1

1

1

它默认就在那里。它是id字段。


我无法找到这个字段在我的自定义列表中显示? - pal4life
我现在不在,但是等我回到电脑前我会检查它。 - kemiller2002

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接