SharePoint – zmiana Display Name dla pola Title

 

Jednym z podstawowych problemów jaki napotykają początkujący programiści SharePoint jest zmiana nazwy wyświetlania dla wbudowanego pola Title.  Pole to jest obowiązkowym polem typu Text, umożliwia zatem przechowywanie ciągów znakowych o długości do 255 znaków. Bez problemu może być wykorzystane zatem do przechowywania takich danych jak np. imię czy nazwisko pracownika bez potrzeby tworzenia kolejnego dedykowanego pola. Ponadto, na liście, po najechaniu myszką na to pole uzyskujemy dostęp do menu kontekstowego pozwalającego m.in. edytować dany element listy. Przydałoby się więc, aby zawierało ono bardziej opisowy nagłówek niż “Title”, czy też “Tytuł”.

Dla pól utworzonych w Content Type’ie bez problemu można zmienić nazwę wyświetlania (Display Name) w stosunku do znajdującej się w zdefiniowanej kolumnie (Site Column) poprzez nadpisanie właściwości DisplayName. Sytuację te możemy zobaczyć na poniższych ekranach:

content type def

W definicji kolumny widać, że dla pola PersonName jako Display Name ustawiony został tekst “Nazwisko”, natomiast w referencji użytej w Content Type nazwa ta została zmieniona na “Nazwisko content type”.

new list item

Przechodząc do utworzenia nowego elementu listy widzimy, że nazwa “Nazwisko content type” została wyświetlona zarówno w widoku wszystkich elementów listy oraz na formularzu dodawania nowego elementu.

site column

Na liście kolumn witryny znajduje się natomiast zgodnie z oczekiwaniami nazwa “Nazwisko”.

Nieco inne zasady obowiązują jednak jeśli chodzi o zmianę nazwy wyświetlania kolumny Title. Przede wszystkim, aby odwołać się do tej kolumny przy definiowaniu Content Type’a należy znać jej GUID. W tym celu polecam użycie narzędzia SharePoint Manager 2010 dostępnego pod adresem http://spm.codeplex.com/ 

W celu zmiany nazwy wyświetlania musimy dysponować właściwie trzema GUID’ami – dla kolumn Title, LinkTitle oraz LinkTitleNoMenu. Po dodaniu referencji w Content Type dla tych pól jak na obrazku poniżej moglibyśmy oczekiwać zmiany nazwy pola:

 content type no change

Niestety jednak jeśli chodzi o Content Type nie przynosi to pożądanego skutku:

content type view

Umieszczenie tych referencji w Content Type pozwoli natomiast na automatyczne wygenerowanie referencji do pól przy tworzeniu List Definition, dzięki czemu nie trzeba ich ręcznie kopiować. W samej definicji listy trzeba jeszcze, poza referencją do pól, dodać definicję tych pól (tak jak została ona automatycznie dodana dla utworzonego wcześniej pola PersonName):

list definition title changed

Po takich zmianach widzimy, że nazwa pola uległa zmianie zarówno w widoku listy, jak i na formularzu dodawania nowego elementu (pamiętać należy jednak, że w Content Type nazwa ta bez zmian jest wyświetlana jako Title):

new list item title changed

Reklamy