14 Mart 2009 Cumartesi

UserControlleri Web Partlarda Load Etmek

Senelerce bu konuda Return of SmartPart, Son of SmartPart gibi Jan Tielens isimli bir Sharepoint gurusunun yazdıgı uygulamaları imrene imrene kullandık, fakat user controlleri web partlarda gösterebilmek zaten basit bir hadiseymiş. Bildiğiniz gibi Web Part geliştirirken design time desteği alamıyoruz ve kod tarafında htmlTable,HtmlTableRow, HtmlTableCell, Generic Control, ASP.Net 2.0 server kontrolleri yaratmak özellik atamak, data gösteren DataList, Repeater, GridView, vb kontrollerin Templatelerini ve Bindinglerini yapmak zorunda kalıyoruz. User Controllerin sundugu design time supportla kodlarımızı geliştirmek hepimizin tercihi oluyor çoğu sefer. Peki bu yazdıgımız kontrolü Web Part olarak nasıl yükleyeceğiz?
İşte Cevap...
Öncelikle yarattıgımız UserControlün ASCX uzantılı dosyasını 12inin altındaki TEMPLATES/CONTROLTEMPLATES folderına kopyalıyoruz. UserControlümüzü içeren dll imizi uygulamamızın bin klasörüne kopyaladıktan sonra user controlümüzü Load edecek web partımızı aşağıdaki gibi oluşturuyoruz.

public class MainPageGalleriesWebPart:System.Web.UI.WebControls.WebParts.WebPart
{
MainPageGalleriesUserControl uc;
protected override void CreateChildControls()
{
this.ChromeType = PartChromeType.None;
base.CreateChildControls();
uc = (MainPageGalleriesUserControl)this.Page.LoadControl(@"\_controltemplates\MainPageGalleriesUserControl.ascx");
this.Controls.Add(uc);
}
}
Web Partımızın dllini uygulamamızın bin klasörüne ekleyip webPartımızı web.config dosyasında SafeControl olarak ekledikten sonra Uygulamamızda SiteSettings altındaki WebParts kısmına gidiyoruz. Buradan New Dİyerek WebPartımızı seçiyor ve Populate ediyoruz. Bundan sonra Sayfanızda web part Zonelara Web partınızı ekleyebilirsiniz artık. Bir hata yapmadıysanız Web Partınız içerisinde userControlünüzü görüntüleyeceksiniz. Sorularınız olursa yorumlar kısmına yazmanızı bekliyorum. Bir sonraki postta görüşmek üzere..

Hiç yorum yok:

Yorum Gönder