2010-07-07 28 views
14

Tôi đã từng đọc, rằng không nên thay đổi tên hiển thị của cột Tiêu đề, khi tạo một Loại nội dung mới trong SharePoint. Tuy nhiên, điều này có thể xảy ra (tức là các tên cột tĩnh vẫn là "Tiêu đề" nhưng tên hiển thị là "Mô tả").Thay đổi tên hiển thị của cột Tiêu đề trong một ContentType, khôn ngoan hay không?

Vì vậy, câu hỏi của tôi là, các biến chứng có thể xảy ra là gì? Tại sao tôi không thay đổi nó, khi tôi tạo một ContentType mới cần cột "Mô tả" nhưng không có cột "Tiêu đề"?

Trả lời

18

Tôi đồng ý rằng bạn cần thực hiện điều này bằng XML CAML. Tôi chỉ muốn đăng các chi tiết thực tế về cách thực hiện để người tiếp theo có câu hỏi này không phải tiếp tục tìm kiếm như tôi đã làm. Nhờ có Lambros's Blog cho câu trả lời.

Bạn thực sự cần phải cập nhật ba trường - trường tiêu đề và hai trường được tính toán dựa trên trường đó và bạn cần sử dụng giá trị SharePoint ID được xác định trước. Xem dưới đây hoặc liên kết ở trên:

Bạn cần phải thêm vào FieldRefs bằng cách thêm những điều sau đây:

<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"/> 

Bạn cần phải thêm vào các Fields bằng cách thêm những điều sau đây:

<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"/> 

Đó Hãy làm nó. Cảm ơn một lần nữa để Lambros.

+2

Điều này có đổi tên trường cho loại nội dung cụ thể tham chiếu đến trường này hoặc cho toàn bộ trang web không? +1. –

2

Tôi không biết bất kỳ vấn đề nào. Tôi đã làm điều này bản thân mình nhiều lần và đã không gặp phải bất kỳ vấn đề.

+1

Đồng ý với Rob, tôi chưa bao giờ gặp sự cố - Tôi cũng đã sử dụng chỉ thị RemoveFieldRef trong các loại nội dung kế thừa từ mục để xóa nó. – Shaneo

+0

Tôi đồng ý. FieldRef và RemoveFieldRef sẽ không gây ra bất kỳ sự cố nào. Tôi nghe nói, nếu bạn thay đổi Fieldname chính nó, nó có thể gây ra vấn đề, rằng bạn không thể thay đổi nó trở lại bởi vì tên cũ là "dành riêng", có thể thats những gì bạn đọc về? – Hinek

8

Nếu bạn đang phát triển loại nội dung của riêng mình dưới dạng tệp xml trong một đối tượng trong giải pháp, thì không có vấn đề gì khi thay đổi tên hiển thị của cột tiêu đề.

Vấn đề là khi người dùng cố gắng thực hiện điều đó thông qua giao diện người dùng.

  1. Họ đi đến thiết lập trang web/các loại nội dung
  2. mở kiểu nội dung và nhấp chuột vào cột tiêu đề
  3. Thay đổi tên cho một cái gì đó đẹp

Trong trường hợp đó những gì họ đang thay đổi là tên hiển thị của Cột trang web tiêu đề. Và một khi họ phát hiện ra rằng nó đã thay đổi cột tiêu đề trong tất cả các danh sách, họ cố gắng thay đổi nó trở lại, nhưng điều này được ngăn chặn bởi tên người dùng thông minh của giao diện người dùng SharePoint thông minh là một tên dành riêng.

+1

Ah ok, bây giờ tôi hiểu. Tôi muốn tạo kiểu nội dung của tôi dưới dạng xml trong Visual Studio, vì vậy tôi sẽ lưu. Cảm ơn bạn. – Turrau

5

Tôi có kinh nghiệm trực tiếp với câu hỏi của bạn về "biến chứng có thể là gì", vì vậy hãy để tôi cung cấp cho bạn một ví dụ cụ thể mà tôi vừa gặp phải khiến tôi đau nhiều vào sáng nay.

Bạn vô tình thay đổi tên cột trang web (nghĩ rằng bạn chỉ ảnh hưởng đến một danh sách cụ thể), nhưng sau đó nhận ra bạn đã thay đổi cột trang mục mẹ và chọn hộp tiện lợi được áp dụng cho tất cả nội dung được kế thừa loại. (Tôi cảm thấy như mình đang rình mò vì điều này ... ugh).

Vì vậy, tất cả các danh sách của bạn đều bị ảnh hưởng. Nhưng chờ đợi, có nhiều đau đớn hơn để có được ở đây. Danh sách người dùng SharePoint bên trong, được gọi là "Danh sách thông tin người dùng" cũng bị ảnh hưởng và bạn không thể thay đổi nó trở lại tiêu đề cột "Tên" ban đầu. Trường hợp này thực sự sẽ làm móng bạn là khi bạn cố gắng kết nối với danh sách SharePoint thông qua Microsoft Access, được mã hóa cứng để tra cứu danh sách thông tin người dùng đặc biệt tìm kiếm cột có tên, "Tên".Do đó, nó phá vỡ các danh sách liên kết này làm cho chúng vô dụng thông qua MS Access.

Tôi hiện đang nghiên cứu cách đổi tên nó qua một số cách tiếp cận khác, vì giao diện người dùng chặn bạn đặt tên cột trở lại "Tên".

Vì vậy, để trả lời câu hỏi của bạn: Đừng làm điều đó!

+0

Như bạn đã viết, bạn đã thay đổi tên hiển thị của cột trang Tiêu đề của loại nội dung gốc (Tôi giả sử đó là loại nội dung Mục trên trang gốc của tuyển tập site). Tất nhiên nó có hậu quả trên bộ sưu tập trang web của bạn. Nhưng thay đổi tên hiển thị của cột Tiêu đề của loại nội dung (thuộc tính DisplayName của FieldLink) không có hàng tá loại nội dung khác được kế thừa từ nó (ví dụ: loại nội dung được liên kết với danh sách) thường khá phổ biến. Bạn có thể đánh giá danh sách người dùng bị ẩn thông qua $ web.SiteUserInfoList từ PowerShell và thay đổi mọi thứ trở lại từ mã. – pholpar

Các vấn đề liên quan