2011-09-13 2 views
5

tôi cố gắng thêm lĩnh vực tra cứu trong kiểu nội dung trường có định nghĩa này:.Sharepoint và WebId ="

<Field ID="{c80e8e3c-7124-4772-a39d-5b69f131d542}" 
     Name="Site" 
     Group="Tieto Intranet Columns" 
     Type="Lookup" 
     DisplayName="Site" 
     StaticName="Site" 
     List="Lists/FavoriteSites" 
     ShowField="Title" 
     PrependId="TRUE" 
     WebId="~sitecollection" 
    > 

danh sách FavoriteSites, mà tôi muốn tham khảo lĩnh vực tra cứu này, tồn tại trên phạm vi bộ sưu tập trang web Triển khai diễn ra tốt đẹp, nhưng khi tôi tạo danh sách dựa trên kiểu nội dung với tra cứu này, có vẻ như trường tra cứu đó không được kết nối với danh sách FavoriteSites, tôi thêm một số dữ liệu vào FavoriteSites và tôi cố thêm thứ gì đó vào danh sách thứ hai với trường tra cứu Thật không may thả xuống lựa chọn, mà sẽ cho tôi thấy dữ liệu từ danh sách FavoriteSites là trống.

Khi tôi tạo cột tra cứu mới cho FavoriteSites theo cách thủ công mọi thứ đều OK.

Có ai có ý tưởng nào có thể là vấn đề trong định nghĩa tra cứu này không?

UPDATE:

Như Giàu đề nghị tôi, tôi thiết lập mức đăng nhập vào Verbose một tìm tin nhắn này:

Các WebId = ~ sitecollection và Danh mục = Lists/FavoriteSites thuộc tính quy định cho lĩnh vực {c80e8e3c-7124- 4772-a39d-5b69f131d542} trong tính năng {d86c7005-d31d-43ae-b86b-38f28b81072e} không thể tìm thấy. Đặt danh sách = {39CEC23E-FB28-47B3-BC36-C21780AD1D94}.

Tôi không hiểu vì danh sách FavoriteSites tồn tại. Danh sách FavoriteSites và danh sách thứ hai với trường Site được triển khai bởi một tính năng trên phạm vi thu thập trang.

Tôi không thể chỉ định danh sách tra cứu bằng GUID vì tôi không biết guid trong thời gian triển khai.

+1

Tìm kiếm nhật ký SP (Yêu cầu nhật ký cấp chi tiết) tại thời điểm tính năng được kích hoạt cho thông báo sau: "Thuộc tính WebId = ~ sitecollection và List = Lists/FavoriteSites được chỉ định", sau đó cập nhật câu hỏi của bạn với nửa sau thông điệp. –

+0

Cảm ơn bạn đã bình luận của bạn Rich, tôi tìm thấy tin nhắn này và cập nhật bài viết của tôi. Bây giờ bạn có ý tưởng nào đó là vấn đề không? – Michal

Trả lời

4

gì rằng thông điệp log nghĩa là Lists/FavoriteSites không tồn tại trong trang web của bộ sưu tập trang gốc hoặc trang web nơi tính năng đang được kích hoạt (nếu sau này là một trang con).

Nếu danh sách/FavoriteSites đang được tạo bởi một đối tượng địa lý, hãy đảm bảo rằng đối tượng địa lý được kích hoạt trước tính năng Trường của bạn. Đặt phần tử ListInstance ngay phía trên phần tử Trường của bạn nếu bạn phải. Nhưng thông báo rõ ràng: danh sách không tồn tại tại thời điểm trường tùy chỉnh của bạn đang được cấp phép cho tuyển tập site. Và đó là lý do tại sao nó không hoạt động.

Để rõ ràng, danh sách phải tồn tại tại thời điểm tính năng được kích hoạt, không chỉ khi bạn tạo một thể hiện danh sách sẽ sử dụng trường đó.

P.S. Tôi đã tìm thấy điều này bằng cách kiểm tra "documentation" cho phương pháp Microsoft.SharePoint.SPFieldElement.PerformFixUpIfLookUpField.

+0

Cảm ơn bạn Rich, nó đã được gây ra bởi thứ tự của tính năng kích hoạt. Khi tôi đặt kích hoạt tính năng với danh sách trước khi tính năng với các trường mọi thứ hoạt động tốt. – Michal

1

Thử thay đổi trường danh sách thành ID của danh sách, ví dụ: List="{4641f5f2-b358-4805-9d7d-e910d2243fb5}"

Tôi cũng muốn khuyên bạn sử dụng SharePointManager nhìn vào định nghĩa lĩnh vực lĩnh vực tự tạo của bạn và dễ dàng tìm thấy các guids nở của danh sách, vv

+0

Cảm ơn bạn đã trả lời Nat, SharePointManager thực sự là ứng dụng rất hữu ích, tôi không biết trước đây. Tôi không thể chỉ định danh sách này theo ID vì tôi không biết ID trong thời gian triển khai. Tôi có thể thêm cột này bằng tính năng nhận sự kiện nhưng đó không phải là cách tôi muốn sử dụng. Tôi nghĩ rằng cách với xml defintion và danh sách URL nên được OK trong Sharepoint 2010. – Michal

1

Tôi đã gặp vấn đề tương tự. Cuối cùng, vấn đề của tôi là bạn không thể khai báo một danh sách nằm trong rootweb. Mã thông báo ~ sitecollection trong thuộc tính WebId không hoạt động vì nó sẽ viết Hướng dẫn giữa các dấu ngoặc, trong khi SharePoint mong đợi nó không có dấu ngoặc (lời giải thích có thể được tìm thấy trên http://martensboarterstun.wordpress.com/2013/06/15/how-to-create-a-list-definition-with-a-lookup-field-declaratively/). Tôi đã kết thúc việc đặt ID Rootweb trong định nghĩa danh sách của mình.