ID字段不会自动更新

时间:2011-03-16 15:09:25

标签: sharepoint sharepoint-designer

我有一个字段,它使用计算的列类型来引用ID字段。它基本上是这样的:姓名和ID。例如。 Name01,Name02,Name03等。

但是,当我向sharepoint添加新行时,此列不会自动更新,我必须手动点击该字段进行更新。

有解决方法吗?感谢

2 个答案:

答案 0 :(得分:1)

我也看到了这种行为,并且它并不明显,因为当你第一次创建列时(每次编辑列时)一切看起来都很好看。

我发现使用SharePoint Designer工作流程可以解决此问题。工作流更新普通文本字段以存储ID值,然后计算列可以引用该文本字段而不是实际ID字段。

步骤:

  1. 在名为ItemID
  2. 的列表中添加文本字段
  3. 在SharePoint Designer中,将新工作流添加到列表中,并将其设置为在添加或更新项时触发。
  4. 添加工作流操作以将项目的ID存储到字符串(构建动态字符串)
  5. 添加工作流操作以将ItemID字段设置为我在上一步中保存的值(在当前项中设置字段)
  6. 添加工作流操作以更新当前项(更新列表项)
  7. 然后我只需要在我计算的列中引用[ItemID]而不是[ID],它就像魅力一样。

    一个缺点是用户最终会在“新建”和“编辑”表单上看到ItemID字段,除非您执行某些操作来隐藏它。

    如果您有更多时间在手上并希望避免发送工作流历史记录列表,则可以在事件处理程序中执行相同的解决方法。

答案 1 :(得分:0)

这是设计的。

计算列不能在其表达式中包含ID字段。原因是sharepoint在创建/更新时存储计算字段的结果值。创建项目后,ID尚不存在。因此它没有什么可以反对的。但是,一旦更新了值,您就可以看到ID已填充并且现在可用。