SharePoint: Berechnete Spaltenwerte verschwinden beim Bearbeiten von Listenelement. Irgendwelche Ideen?

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

  •  11-09-2019
  •  | 
  •  

Frage

Ich habe eine berechnete Spalte in einer benutzerdefinierten SharePoint 2007 -Liste mit der folgenden Formel:

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

Wenn in der Liste ein Element erstellt wird, ist alles in Ordnung. Wenn ein Element aktualisiert wird, befindet sich die Spalte [ID] nicht mehr in der berechneten Spalte für dieses Element.

Also, bei der Schöpfung: "Ir-40-Thetitleishere", aber nach der Bearbeitung ist es "ir-Thetitleishere".

Hat jemand Einblicke darüber, warum das passieren würde?

War es hilfreich?

Lösung

Ich bestätige das oben erwähnte Verhalten. Jede Add/Bearbeiten löscht den [ID] -Teil aus. Wenn Sie die Spalte in der Liste bearbeiten und die Formel aktualisieren, aktualisieren Sie alle Listenelemente, um korrekt zu sein (bis Sie eine Bearbeitung im Element durchführen).

ich fand In diesem Beitrag wird das gleiche Problem erwähnt.

Klingt nach der einzigen Lösung, einen einfachen Workflow mit SharePoint Designer zu erstellen, der ein Textfeld in Ihrer Liste aktualisiert.

Andere Tipps

Ich hatte vor einiger Zeit ein ähnliches Problem. Über andere Blogs und Experten stellte ich fest, dass die [ID] -Spalte nicht in einer berechneten Spalte verwendet werden sollte, da sie Chaos ausführt und viele Fehler verursacht. Entschuldigung - Entfernen Sie die ID -Spalte und Sie sollten in Ordnung sein.

Diese Frage ist ein wenig alt, aber ich hatte das gleiche Problem und fand eine Lösung dafür. Es ist eine ziemlich spezifische Korrektur und hilft nicht jedem - es beinhaltet die Verwendung von JavaScript in einem Web -Editor -Webpart, um das berechnete Feld zu aktualisieren.

Diese Seite -- http://blog.pathtosharepoint.com/2008/09/01/using-calculed-columns-t-write-html/ - gibt ein Beispiel dafür, wie JavaScript auf die gleiche Weise verwendet wird, wie ich es verwendet habe. Der wichtige Codeblock ist der erste während der Schleife. Es geht darum, die Spalte außerhalb der Box -ID aus der Liste zu greifen und das berechnete Feld für die ID zu aktualisieren.

In meinem Fall hatte ich eine URL in einem berechneten Feld, das die ID als Parameter erforderte. Natürlich würde das normal nicht funktionieren, weil Sie die ID nicht in ein berechnetes Feld einfügen können. Was ich gemacht habe, war ich "? Id = null" im ID -Parameter meiner berechneten Feld -URL. Dann habe ich das durch die ID ersetzt, die mit JavaScript abgerufen wurde. der URLs, um die richtige ID zu haben.

Ich weiß, dass dies sehr alt ist, aber ich konnte nirgendwo eine neuere Version der Frage finden, und die obige Antwort von Ferr hat das Problem für mich gelöst, aber nicht sehr klar, also dachte ich, ich würde es aktualisieren.

Dies setzt voraus, dass Sie die ID in der Ausgabe -HTML (z. B. innerhalb eines Links) verwenden möchten. Ich denke, dies ist ziemlich häufig.

Mit dem JavaScript aus dem PathtosharePoint -Link habe ich im Folgenden hinzugefügt, um die ID mit einer IF -Anweisung zur Sicherheit zu erhalten:

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

Dies wird zum Zeitpunkt des Schreibens in die Zeit des neuesten PathtosharePoint -Fixes gestellt. Dies funktioniert für mich in SharePoint 2010. Hinweis: Fügen Sie die Zeichenfolge "Spidreplace" in Ihre berechnete Spalte auf, um sie durch die Element -ID zu ersetzen.

PathtosharePoint -Seite: http://blog.pathtosharepoint.com/category/calculed-sporns/PathtosharePoint -Code: http://pathtosharepoint.com/downloads

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top