SharePoint:Вычисленные значения столбцов исчезают при редактировании элемента списка.Есть идеи?

StackOverflow https://stackoverflow.com/questions/1094628

  •  11-09-2019
  •  | 
  •  

Вопрос

У меня есть вычисляемый столбец в пользовательском списке SharePoint 2007 со следующей формулой:

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

Если элемент создается в списке, все в порядке, однако при обновлении элемента столбец [ID] больше не находится в вычисляемом столбце для этого элемента.

Итак, о создании:«IR-40-TheTitleIsHere», но после редактирования это «IR--TheTitleIsHere».

Кто-нибудь знает, почему это происходит?

Это было полезно?

Решение

Я подтверждаю поведение, упомянутое выше.Любое добавление/редактирование приведет к удалению части [ID].Если вы отредактируете столбец в списке и обновите формулу, она обновит ВСЕ элементы списка, чтобы они стали правильными (пока вы не отредактируете этот элемент).

я нашел этот пост, в котором упоминается та же проблема.

Похоже, единственным решением было бы создать простой рабочий процесс с помощью SharePoint Designer, который обновлял бы текстовое поле в вашем списке.

Другие советы

Некоторое время назад у меня была похожая проблема.Благодаря другим блогам и экспертам я обнаружил, что столбец [ID] не следует использовать в вычисляемом столбце, поскольку он наносит ущерб и вызывает множество ошибок.Извините, удалите столбец идентификатора, и все будет в порядке.

Этот вопрос немного устарел, но у меня была такая же проблема, и я нашел ее решение.Это довольно специфическое исправление, и оно не поможет всем — оно предполагает использование JavaScript в веб-части редактора контента для обновления вычисляемого поля.

Этот сайт -- http://blog.pathtosharepoint.com/2008/09/01/using-calculated-columns-to-write-html/ -- дает пример того, как использовать JavaScript так же, как я его использовал.важным блоком кода является первый цикл while.Суть в том, чтобы получить из списка столбец исходного идентификатора и обновить любое вычисляемое поле, которому нужен идентификатор.

В моем случае у меня был URL-адрес в вычисляемом поле, для которого в качестве параметра требовался идентификатор.конечно, это не будет работать нормально, потому что вы не можете поместить идентификатор в вычисляемое поле.Что я сделал, так это поместил «?ID=null» в параметр ID URL-адреса моего вычисляемого поля, а затем заменил его идентификатором, который был получен с помощью javascript.поэтому всякий раз, когда страница загружается, js запускается и обновляет все URL-адреса, чтобы они имели правильный идентификатор.

Я знаю, что это очень старый вопрос, но я не смог найти более новую версию вопроса где-либо еще, и ответ Ферра выше решил проблему для меня, но не очень ясен, поэтому я решил обновить его.

Предполагается, что вы хотите использовать идентификатор в выходном HTML (например, внутри ссылки). Я думаю, это довольно распространенное явление.

Используя javascript из ссылки pathtosharepoint, я добавил следующее, чтобы получить идентификатор с помощью оператора if в целях безопасности:

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

Это помещается в цикл while последнего исправления pathtosharepoint на момент написания статьи.У меня это работает в SharePoint 2010.Примечание:Включите строку «SPIDReplace» в вычисляемый столбец, чтобы заменить ее идентификатором элемента.

страница пути к SharePoint: http://blog.pathtosharepoint.com/category/calculated-columns/код путиsharepoint: http://pathtosharepoint.com/Загрузки

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top