18 Mart 2009 Çarşamba

Bir Page üzerindeki Web Partları Listelemek ve Propertylerine erişmek

Uğraştıgım proje kapsamında Bir Web Part Page üzerindeki Web partları ve bu web partların değerlerini elde edip başka bir sayfada listeleme yapmam istendi. Daha evvel uğraşmadıgım bu konu hakkında internette de işe yarar bir kaynak bulamadım.
Bunun için değerli arkadaşım Y.Tarık Kranda ile(kendisi de en kısa sürede bloglarıyla aramızda olacak) SPWeb sınıfının tüm metodlarını derinlemesine inceleyip Site üzerindeki herhangi bir Web Part Pagedeki web partları elde edebileceğimiz metodu bulduk. Lafı fazla uzatmadan koda geçiyorum.

SPWeb webLists = SPContext.Current.Site.RootWeb.Webs["Listeler"]; //burda Listeler sitesini elde ediyoruz
SPLimitedWebPartManager man =webLists.GetLimitedWebPartManager("Pages/Favoriler.aspx", PersonalizationScope.Shared);
//Listeler sitesindeki Favoriler.aspx sayfasının Web Part Managerini elde ediyoruz
SPLimitedWebPartCollection webParts = man.WebParts;
//Favoriler.aspx'in web part koleksiyonunu alıyoruz
foreach (System.Web.UI.WebControls.WebParts.WebPart part in webParts)
{
if (part is TTNetAv.Audio.WebPart.EditorPlayListWebPart &&part.Visible)
{
TTNetAv.Audio.WebPart.EditorPlayListWebPart webPart=(TTNetAv.Audio.WebPart.EditorPlayListWebPart)part; //web partımızı Cast ediyoruz.

}
}
Sayfanın WebPartManager'ine eriştikten sonra sayfadaki istediğimiz web partları silebilir, yeni web part ekleyebilir, başka bir web partla consumer-provider ilişkisini set edebiliriz. Önümüzdeki postlarda bu konularda örnekler yapmaya çalışacağım.
Şimdilik iyi çalışmalar diliyorum herkese..

Hiç yorum yok:

Yorum Gönder