我在自定义 SharePoint 2007 列表中有一个计算列,其公式如下:

=CONCATENATE("IR-",[ID],"-",LEFT(UPPER([Title]),25))

如果在列表中创建了一个项目,则一切都很好,但是,当更新项目时,[ID] 列不再位于该项目的计算列中。

所以,在创作上:“IR-40-TheTitleIsHere”,但编辑后,它是“IR--TheTitleIsHere”。

任何人都知道为什么会发生这种情况?

有帮助吗?

解决方案

我确认上述行为。任何添加/编辑都会删除 [ID] 部分。如果您编辑列表中的列并更新公式,它将更新所有列表项以使其正确(直到您对该项目进行编辑)。

我发现 这篇文章提到了同样的问题.

听起来唯一的解决方案是使用 SharePoint Designer 创建一个简单的工作流,该工作流将更新列表中的文本字段。

其他提示

我有类似的问题而回。通过其他博客和专家,我发现[ID]列不应在计算列使用,因为它肆虐,并导致许多错误。遗憾 - 删除ID列和你应该罚款

这个问题是有点老了,但我有同样的问题,并为它找到一个解决方案。这是一个非常具体的修复,并无法帮助所有人 - 它涉及到使用JavaScript的内容编辑器Web部件更新计算字段

此网站 - HTTP:/ /blog.pathtosharepoint.com/2008/09/01/using-calculated-columns-to-write-html/ - 给出了如何在我用它以相同的方式使用JavaScript的例子..的的代码块重要是第一while循环。点是从任何计算字段需要ID的列表,并更新抢出盒ID列的

在我来说,我有一个计算字段的URL所需的ID是理所当然的参数..因为你不能把ID在计算领域,将无法正常工作。我所做的是我把“?ID = NULL”在我的计算字段的URL的ID参数,然后我更换了与已使用JavaScript检索到的ID ..所以每当加载页面时,js的序幕,并更新所有的URL的具有正确的ID。

我知道这是很老,但我无法找到问题的其他地方的新版本及以上来自FERR解决了这个问题,我的答案,但还不是很清楚,所以我想我会更新它。

此假定要(链接内例如)使用该ID在输出HTML,我认为这是相当普遍的。

这是我在下面用一个if语句的安全得到ID添加pathtosharepoint链接使用JavaScript:

if (HTMLregexp.test(CellContent)) {    //original pathtosharepoint line
   if (NodeSet[i].parentNode.getAttribute("iid")){
      var SPID = NodeSet[i].parentNode.getAttribute("iid").split(",")[1];
      CellContent = CellContent.replace("SPIDReplace", SPID)
   }
NodeSet[i].innerHTML = CellContent;   //original pathtosharepoint line

这是摆在最新pathtosharepoint修复while循环在写作时。这对我的作品在SharePoint 2010。 注:包括在你的计算列中的字符串“SPIDReplace”得到它由项目ID代替

pathtosharepoint页: http://blog.pathtosharepoint.com/category/calculated-columns/ pathtosharepoint代码: http://pathtosharepoint.com/Downloads

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