2010-05-03 17 views
6

Bir web'den diğerine özel bir içerik türünün kopyalanmaya çalışılmasının ortasındayım. Çevreye baktım ve FieldLinks ve Fields kullanan bazı örnekler buldum. Hangisinin kullanılacağı konusunda kaygılıyım, çünkü kaynak ağımdan FieldLinks aldığımda 3 tane alan elde ediyorum; Alanlardan alınırken sadece 2 alanım geri döndü ... özel alan eksik. Arayüz üzerinden yaptığımdan beri alanları uygun seviyeye eklediğime eminim. Ancak kodu kullanarak aldığınızda ... rakamlar eklemiyor.Sharepoint'te FieldLinks ve Field arasındaki farklar

Bu garip problemin yanı sıra, FieldLinks ve Fields arasındaki ve ne zaman kullanacağım İçerik Türleri (programsal olarak) ile uğraşırken farkın ne olduğunu bilmek istiyorum.

Teşekkürler.

cevap

10

SPFields, alanların kendileridir, SPFieldLinks ise alanlara başvurur. This is a good read that will explain things in detail. Genel uygulamada , gerçek içerik türü tanımı üzerinde çalışırken SPFieldLinks'i kullanmak daha güvenlidir. Ancak, burada kısa bir özet vereceğim.

Listeler ve Web'ler, alan verilerini içeren gerçek alanları içerir. Öte yandan, bir içerik türü sadece liste veya web'deki ilgili alana işaret eden Alan Referansını tutar. Bu biraz kafa karıştırıcı olur, çünkü içerik türlerinin hem SPFieldLinkCollection hem de SPFieldCollection vardır.

SPFieldLinkCollection, içerik türünün gerçek tanımında kullanılır ve bir web'den diğerine içerik türünü kopyalama durumunuzda kullanmak istediğiniz şeydir. SPFieldLinks, içerik türü için XML Şemasındaki gerçek öğelere karşılık gelir.

Bir içerik türünün SPFieldCollection öğesini çağırıp bir Alan öğesini çağırdığınızda, gerçekte gerçekleşen şey, içerik türünün ilgili alan referansını kontrol etmesi ve ardından gerçek listeyi almak için listede/webde aranmasıdır. alan. Temel olarak, SPFieldCollection'ı bir arama çalışmasında olduğu gibi düşünün: hem arama değeri hem de arama kaynağı olmadan değersizdir.

+0

Açıklama için teşekkürler. Benim durumum, içerik türü SPFieldLinklerini kontrol ettiğimde, 3 alan çizgisini görebiliyorum (ki bu doğru); Ancak SPField'i kontrol edersem, yalnızca 2 alanı görebiliyorum ... özel sütun eksik. – BeraCim

+0

... ve içerik türü ve sütunlar, herhangi bir fark yaratırsa, program aracılığıyla değil, arayüz yoluyla eklenir. – BeraCim

+0

SP2013 doc [burada] (https://msdn.microsoft.com/en-us/library/office/microsoft.sharepoint.spcontenttype.fieldlinks.aspx) (ifadelerin altına bakın) noktanızı güçlendirir, bu yüzden hala -bugüne kadar. – jpaugh

İlgili konular