SharePoint:Вычисленные значения столбцов исчезают при редактировании элемента списка.Есть идеи?
-
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/Загрузки