SharePoint列表中的自动编号列

SharePoint列表中的自动编号列,sharepoint,moss,Sharepoint,Moss,在SharePoint列表中,我需要一个自动编号列,当我添加到列表中时,该列将递增。我该怎么做才好呢?默认情况下它就在那里。这是id字段。您不能向SharePoint列表添加新的唯一自动生成的id,但其中已经有一个!如果编辑“所有项目”视图,您将看到未选中显示选项的列列表 其中有相当多的列存在,但从未显示,如“Created By”和“Created”。这些字段在SharePoint中使用,但默认情况下不会显示,以免使显示混乱。您不能编辑这些字段,但可以向用户显示它们。如果选中ID字段旁边的“显

在SharePoint列表中,我需要一个自动编号列,当我添加到列表中时,该列将递增。我该怎么做才好呢?

默认情况下它就在那里。这是id字段。

您不能向SharePoint列表添加新的唯一自动生成的id,但其中已经有一个!如果编辑“所有项目”视图,您将看到未选中显示选项的列列表

其中有相当多的列存在,但从未显示,如“Created By”和“Created”。这些字段在SharePoint中使用,但默认情况下不会显示,以免使显示混乱。您不能编辑这些字段,但可以向用户显示它们。如果选中ID字段旁边的“显示”框,您将在列表中显示一个唯一且自动生成的ID字段


签出:

Sharepoint列表自动包含一个带有“ID”的列,该列将自动递增。只需从“修改视图”屏幕中选择此列即可查看。

如果要控制唯一标识符的格式,可以。MSDN也有一个功能。这基本上意味着您正在创建一个自定义列

WSS定义计数器字段类型(上面的ID列正在使用该类型)。我从来没有必要重复使用或扩展它,但这应该是可能的


解决方案可能不需要创建自定义的
。例如:如果您想要像CUST1、CUST2这样的唯一ID。。。可以创建计算列并使用公式中ID列的值(
=“CUST”&[ID]
)。我没有尝试过,但这应该可以:)

如果您想要在所有列表中的ID列之外的内容,您可能需要求助于列表上的事件接收器,该接收器“计算”您唯一标识的值应该是什么,或者使用嵌入了所需逻辑的自定义字段类型。不幸的是,这两个选项都需要编写自定义代码并将其部署到服务器,以及将程序集部署到GAC,这在您无法完全控制服务器的环境中是不可取的

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


不幸的是,计算列(这似乎是一个明显的解决方案)无法用于此目的,因为在尝试计算时尚未分配ID。如果您在事后介入并编辑该项,计算可能会达到您想要的效果,但在初始创建新项时,计算将不正确。

如上所述,sharepoint中的所有对象都包含某种唯一标识符(通常是列表项的基于整数的计数器和列表的GUID)


这就是说,网站上还有一个名为“Unique Column Policy”的功能,用于添加具有唯一值的其他列。完整的writeup可在

上获得,因此我不确定我是否真的能想到为什么您需要一个“网站集唯一”id,所以您可以发表评论,让我们知道您在这里真正想要实现的目标


无论哪种方式,所有项目都有一个唯一的ID属性,如果你真的需要它,它就是一个GUID:

Peetha有一个最好的主意,我在我们的SP站点中用一个自定义列表做了同样的事情。使用工作流自动递增是最好的方法,也没有那么困难。查看此网站:


我非常感谢发布该解决方案的人,它非常酷

我在自定义列表中遇到了这个问题,虽然无法使用自动生成的ID列来创建计算列,但可以使用工作流来完成繁重的工作

我创建了一个编号类型的新工作流变量,并将其设置为当前项中ID列的值。然后,只需计算自定义列的值并设置它——在我的例子中,我只需要编号从100000开始


这实际上不起作用。它引发以下异常“公式包含对字段的引用”。请注意,如果您试图从偏移量开始编号或设置自定义前缀/后缀,则无法在计算列中使用ID列。创建新项目后,可以使用在将项目添加到列表时触发的工作流,基于ID列设置列值。我找不到此字段以显示在自定义列表上?我现在不在,但我回到计算机后会检查它。您可以使用JSOM获取列表项目的计数,12年后,这仍然是一场噩梦!