在 SharePoint 列表中,我想要一个自动编号列,当我添加到列表中时,该列会递增。我怎样才能最好地解决这个问题?

有帮助吗?

解决方案

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

其他提示

您无法将新的唯一自动生成的 ID 添加到 SharePoint 列表,但那里已经有一个!如果您编辑“所有项目”视图,您将看到未选中显示选项的列列表。

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

查看: SharePoint 列表中的唯一 ID

如果您想控制唯一标识符的格式,您可以 创建你自己的 <FieldType> 在 SharePoint 中. 。MSDN 上也有一个 视觉操作方法. 。这基本上意味着您正在创建一个自定义列。

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

无需创建自定义解决方案就可能存在解决方案 <FieldType>. 。例如:如果您想要 CUST1、CUST2 等唯一 ID,...可能可以创建一个计算列并在公式中使用 ID 列的值(="CUST" & [ID])。我没试过这个,但是这个 应该 工作 :)

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

我创建了一个新的工作流变量类型 数字 并将其设置为 ID 当前项目中的列。然后只需计算自定义列值并进行设置即可 - 在我的例子中,我只需要从 100,000 开始编号。

enter image description here

默认情况下它就在那里。这是 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

所以我不确定我是否真的能想到 为什么 您实际上需要一个“网站集唯一”ID,所以也许您可以发表评论并让我们知道这里实际上想要完成什么...

无论哪种方式,所有项目都有一个 UniqueID 属性,如果您 真的 需要它: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistitem.uniqueid.aspx

Peetha 有最好的主意,我在我们的 SP 网站中对自定义列表做了同样的事情。使用工作流自动增量是最好的方法,而且也不是那么困难。查看这个网站: http://splittingshares.wordpress.com/2008/04/11/auto-increment-a-number-in-a-new-list-item/

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top