SharePoint sunucunuza yada Portale erişebildiğiniz bir Windows 8 makinede CAML Designer 2013'ün kurulu olduğundan emin olunuz.
Öncelikle Haberler listesi adında bir liste oluşturalım ve bu Haberler için HaberKategorileri’ni verebilmek için HaberKategorileri diye başka bir liste oluşturalım.
Haberler listesine Kategori adında bir kolon eklenilir. Bu kolon; oluşturulan HaberKategorileri’ne ait “Title” alanına lookup yapılmıştır. Listemiz aşağıdaki gibi görülecektir.
Web part oluşturmak için visual studio açılır ve Boş bir sharepoint projesi oluşturulur.
Proje içerisine “Visual WebPart” eklenir.
Caml Designer ile Listedeki verileri çekmek
Caml Designer 2013 açıldıktan sonra ilgili Site’a ulaşabilmek için connection oluşturulur.Url alanı olarak bağlanacağımız Site Collection’un Url’ini veriyoruz. Client OM seçiyoruz ve devamında Connect diyoruz.
Bağlantı kurulduktan sonra aşağıdaki ekran görününecektir. Bu görünümde soldaki Url’in barındırdığı menüyü açtığımızda siteye ait tüm listeler çıkacaktır.
Haberler listesini seçtikten sonra gösterilcek ilgili alanlar seçilir ve sürükle bırak ile sağ taraftaki alana atılır. İlk başlık değeri “Title” alanını vereceğinden o atılır. Hangi değeri veridiğini görmek için alt taraftaki menüden Caml seçilebilir.
Where alanında ise birçok filtreleme yapabiliriz.Örnek olarak sadece Gündem haberlerini göstersin.Bunun için Kategori alanı sürükle bırak yapıldığında aşağıdaki gibi görülecektir.
Gündem alanı seçilir.Query By ID ise kolon içerisinde string olarak Gündem içermesi yerine seçilen item’ın ID sini alır.Listeye yanlışlıkla birden fazla aynı isimde satır eklenebilir.Ve haberler listesine de her iki farklı öğe için aynı isimde kategori eklenmiş olabilir.Bu durumda Gündem alanı ID ye göre seçilmediğinde gelebilecek eksik veriler için önlem alınmış olunur.
Son olarak Test dediğimizde Gündem kategorisine ait haberler görüntülenecektir.
Burada biz istemediğimiz halde birkaç alan da görüntülenmiştir.Bu değerler default olarak gösterilip kullanıcı tarafından bilgilendirilmesi içindir.Aşağıda oluşturulan otomatik kod blokları içerisinde yer almayacaktır.Bu kolonların da kod bloğu içerisine gelmesi için tekrar ViewFields alanında eklenilmesi gerekmektedir.
Son olarak buradaki listeye ait değerleri web part içerisinde kullanmak için Server OM içerisindeki kodları kopyalıyoruz.
Web part içerisine geldiğimzde ToolBox içerisinden bir Repeater atalım(Haberler listesini datasource olarak bu kontrol içerisinde göstereceğiz).Web part içerisine Repeater ekledikten sonra item template’i aşağıdaki gibi düzenleyelim.
Page Load içerisine caml designer yardımıyla aldığımız kodlay yapıştırılır.Ancak burada spWeb nesnesi olmadığından derleme sırasında hata meydana gelecektir.spWeb nesnesini oluşturmak için SPContext class’ından yararlanılır.Kodun son hali aşağıdaki gibidir
Projeyi deploy ettikten sonra web part’ı görmek için Haberler adında yeni bir sayfa ekleyelim.
Sayfa açıldıktan sonra Ribbon içerisinden insert ve devamında web part seçilir.
Burada Custom kategorisi içerisinde oluşturulan web partlar yer alacaktır.Haberler web part’ını ekleyip add ve sonrasında sayfayı kaydediyoruz.
Sayfayı kaydet dedikten sonra web partımız aşağıdaki gibi görülecektir
Dikkat edileceği üzere burada lookup alanı ID değeri ile birlikte gelmiştir.Bunun için split işlemi uygulanabilinir.Ancak burada repeater içerisinde gösterilen alanda split işlemi uygulamak çok daha kolay olacaktır.
Split işlemi sonrasında webpartımızı tekrar deploy edip sayfayı yenilediğimizde aşağıdaki gibi Gündem kategori bilgisi listedeki ID degeri olmaksızın gelmiş olacaktır.
Böylece webpartımız çok bir tasarım yapmamış olsakda istediğimiz sayfada kullanılacak şekilde hazır durumda ve istenildiği zaman giydirilerek ilgili yerde kullanılabilir duruma gelmiştir.
Yararlı olması dileğiyle...
Hiç yorum yok:
Yorum Gönder