maandag 27 december 2010

Change SPField(link) Displayname on SPContentType

Bij een klant van me hadden moesten we even de displayname wijzigen van een veld op een contenttype. We hadden de kolom zelf al gewijzigd, maar op het contenttype stond nog steeds de oude naam. Via de Fields property op het ContentType kan je NIET de displayname van een veld wijzigen. Hij geeft dan de melding dat je deze operatie enkel kan doorvoeren op een veld wat gelijk op een lijst zit, en dat is bij ons niet het geval omdat ik een contenttype aan het bewerken ben. Wil je de titel van een veld wijzigen wat op een contenttype zit, dan moet je gebruik maken van een andere property op het contenttype namelijk FieldLinks. Hier staat de link die het contenttype heeft met het daadwerkelijk veld. Door de SPFieldLink te bewerken en vervolgens het contenttype te updaten, krijg je het voor elkaar. Zie code hieronder.

SPContentTypeId contentTypeId= new SPContentTypeId("0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900037D15CE78048842B5F3709F848D9818");
SPContentType contentType= site.RootWeb.ContentTypes[contentTypeId];
SPFieldLink fieldLink= contentType.FieldLinks[new Guid("{d3858a2d-33e6-4f61-8eb8-037a20bf5b69}")];
fieldLink.DisplayName = “Nieuwe titel";
contentType.Update();

Geen opmerkingen: