2010-07-07 6 views
14

Ich habe einmal gelesen, dass es nicht ratsam ist, den Anzeigenamen der Spalte Titel zu ändern, wenn Sie einen neuen ContentType in SharePoint erstellen. Es ist jedoch möglich (d. H. Der statische Name der Spalten ist immer noch "Titel", der Anzeigename ist jedoch "Beschreibung").Ändern Sie den Anzeigenamen der Title-Spalte in einem ContentType, weise oder nicht?

Also meine Frage ist, was sind die möglichen Komplikationen? Warum sollte ich es nicht ändern, wenn ich einen neuen ContentType erzeuge, der eine "Description" -Spalte, aber keine "Title" -Spalte benötigt?

Antwort

18

Ich stimme zu, dass Sie dies mit dem CAML XML tun müssen. Ich wollte nur die tatsächlichen Details darüber veröffentlichen, so dass die nächste Person mit dieser Frage nicht weiter suchen muss wie ich. Danke an Lambros's Blog für die Antwort.

Sie müssen tatsächlich drei Felder aktualisieren - das Titelfeld und die zwei berechneten Felder basieren darauf und Sie müssen die vordefinierten SharePoint ID-Werte verwenden. Siehe unten oder auf den Link oben:

Sie müssen den FieldRefs hinzufügen, indem Sie die folgenden Schritte aus:

<FieldRef Name="LinkTitle" ID="{82642ec8-ef9b-478f-acf9-31f7d45fbc31}" DisplayName="Renamed" Sealed="TRUE"/> 
<FieldRef Name="LinkTitleNoMenu" ID="{bc91a437-52e7-49e1-8c4e-4698904b2b6d}" DisplayName="Renamed" Sealed="TRUE"/> 
<FieldRef Name="Title" ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" DisplayName="Renamed" Sealed="TRUE"/> 

Sie benötigen, indem Sie folgende an die Felder hinzuzufügen:

<Field Name="LinkTitle" ID="{82642ec8-ef9b-478f-acf9-31f7d45fbc31}" DisplayName="Renamed" Sealed="TRUE" Type="Calculated"/> 
<Field Name="LinkTitleNoMenu" ID="{bc91a437-52e7-49e1-8c4e-4698904b2b6d}" DisplayName="Renamed" Sealed="TRUE" Type="Calculated"/> 
<Field Name="Title" ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" DisplayName="Renamed" Sealed="TRUE" Type="Text"/> 

That Sollte es tun. Nochmals vielen Dank an Lambros.

+2

Wird das Feld für den bestimmten Inhaltstyp, der auf diese Felder verweist, oder für die gesamte Site umbenannt? +1. –

2

Mir sind keine Probleme bekannt. Ich habe das selbst mehrmals gemacht und habe keine Probleme festgestellt.

+1

Stimmen Sie mit Rob überein, ich hatte nie ein Problem - ich habe auch die RemoveFieldRef-Direktive in Inhaltstypen verwendet, die von Element erben, um es zu entfernen. – Shaneo

+0

Ich stimme zu. FieldRef und RemoveFieldRef sollten keine Probleme verursachen. Ich habe gehört, wenn Sie den Feldnamen selbst ändern, kann es das Problem verursachen, dass Sie es nicht zurück ändern können, weil der alte Name "reserviert" ist, vielleicht ist das, worüber Sie lesen? – Hinek

8

Wenn Sie Ihren eigenen Inhaltstyp als XML-Dateien in einem Feature in einer Lösung entwickeln, können Sie den Anzeigenamen der Titelspalte problemlos ändern.

Das Problem ist, wenn Benutzer versuchen, über die Benutzeroberfläche zu tun.

  1. Sie gehen zur Seite Einstellungen/Inhaltstypen
  2. Öffnen Sie den Typ Inhalt und klickt auf die Titelspalte
  3. Ändern Sie den Namen auf etwas schönes

In diesem Fall, was sie zu ändern ist der Anzeigename der Title-Site-Spalte. Und wenn sie feststellen, dass die Titelspalte in allen Listen geändert wurde, versuchen sie, sie zurück zu ändern. Dies wird jedoch durch die clevere SharePoint-Benutzeroberfläche verhindert, weil Titel ein reservierter Name ist.

+1

Ah ok, jetzt verstehe ich. Ich möchte meinen Inhaltstyp als XML in Visual Studio erstellen, also bin ich sicher. Vielen Dank. – Turrau

5

Ich habe aus erster Hand Erfahrung mit Ihrer Frage "Was sind die möglichen Komplikationen", so lassen Sie mich Ihnen ein konkretes Beispiel geben, dass ich gerade rannte, die mir heute Morgen eine Menge Schmerzen verursacht.

Sie versehentlich ändern den Namen der Website Spalte (denken, dass Sie nur eine bestimmte Liste betreffen), aber später erkennen, Sie haben die Website-Spalte des übergeordneten Elements ändern, und das raffinierte Kontrollkästchen für alle übernommenen Inhalt überprüft Arten. (Ich fühle mich wie Bullenpeitsche dafür ... ugh).

Also alle Ihre Listen waren betroffen, sicher. Aber warte, hier gibt es mehr Schmerzen. Die interne SharePoint-Personenliste, die als "Benutzerinformationsliste" bezeichnet wird, ist ebenfalls betroffen, und Sie können sie nicht zurück in den ursprünglichen Spaltentitel "Name" ändern. Wenn Sie versuchen, eine Verbindung zu SharePoint-Listen über Microsoft Access herzustellen, ist das hart codiert, um die Benutzerinformationsliste speziell nach der Spalte mit dem Namen "Name" zu suchen.Daher werden diese verknüpften Listen durch MS Access zerstört.

Ich bin jetzt auf der Suche nach einer Möglichkeit, sie durch einen anderen Ansatz umzubenennen, da die Benutzeroberfläche Sie daran hindert, die Spalte zurück zu "Name" zu benennen.

Also, um Ihre Frage zu beantworten: Tu es nicht!

+0

Wie Sie geschrieben haben, haben Sie den Anzeigenamen der Title-Site-Spalte des übergeordneten Inhaltstyps geändert (ich nehme an, es war der Item-Inhaltstyp im Stammweb der Websitesammlung). Natürlich hat das Konsequenzen für Ihre Websitesammlung. Aber das Ändern des Anzeigenamens der Titelspalte eines Inhaltstyps (DisplayName-Eigenschaft von FieldLink), die nicht Dutzende anderer Inhaltstypen geerbt hat (z. B. ein Inhaltstyp, der an eine Liste gebunden ist), ist normalerweise recht häufig. Sie können die verborgene Benutzerliste über $ web.SiteUserInfoList von PowerShell auswerten und Dinge aus dem Code zurückverwandeln. – pholpar

Verwandte Themen