【发布时间】:2014-06-03 12:07:36
【问题描述】:
我的 SharePoint 2010 列表中有一个简单的计算列。它采用列表项 ID,向其添加 100。
当我的用户在列表中创建项目时,计算的列不会更新,除非我进入,编辑列(什么都不做)并保存它。事实上,除非我手动编辑该列,否则它会将所有项目的值设为 101。
这是典型的还是有解决此问题的方法?
谢谢!
【问题讨论】:
标签: sharepoint sharepoint-2010
我的 SharePoint 2010 列表中有一个简单的计算列。它采用列表项 ID,向其添加 100。
当我的用户在列表中创建项目时,计算的列不会更新,除非我进入,编辑列(什么都不做)并保存它。事实上,除非我手动编辑该列,否则它会将所有项目的值设为 101。
这是典型的还是有解决此问题的方法?
谢谢!
【问题讨论】:
标签: sharepoint sharepoint-2010
无法根据 ID 值创建计算列。该项目的 Id 是在项目添加到列表后创建的。
您应该改用工作流。
【讨论】:
使用工作流执行此操作的问题(根据公认的答案)是工作流可能需要相当长的时间才能执行。因此,在保存新项目之前,您无法创建 ID,并且始终存在同时用户可能创建您也必须处理的 ID 冲突的危险。如果工作流(如在繁忙的系统上)需要几分钟才能工作,您还可能会遇到其他人在工作流完成之前编辑项目的问题,这可能会导致工作流失败,留下没有任何 ID 的项目。
作为替代方案,您可以考虑在 NewItem.aspx 页面中使用 JavaScript 从单独的列表中查找和增加计数器。请注意,如果您这样做,则必须在阅读时更新计数器,以确保其他用户在同时创建条目时不会意外获得相同的 ID。这意味着即使用户随后取消了新项目而没有保存,您也不必介意计数器增加。
【讨论】:
正如您在打开/保存项目时注意到的那样,每次更改项目都会更新计算列。 让工作流读取标题并写入(相同的)标题是否有效? 应设置计算列中的 [ID] 引用。 那么就不需要额外的 LookupID 列了。
【讨论】: