Makale Özeti

Kullanıcılara sayfada görüntülenen WebPart’lar üzerine işlem yapabilme imkanına ek olarak, mevcut webPart’lar arasından ilgi / ihtiyaçları doğrultusunda seçim yapabilmelerine imkan verebiliriz.  Bu işlem için CatalogZone kontrolünü ve bu kontrole bağlı olarak çalışan üç CatalogPart kontrolü, DeclarativeCatalogZone PageCatalogZone ve ImportCatalogZone kontrollerini kullanacağız.

Makale

.NET 2.0 ile birlikte uygulama geliştiricilerin kullanımına sunulan Web part Framework’u yakından incelemeye devam ediyoruz.

Kullanıcıların Sayfaya Çalışma Zamanında WebPart Eklemelerini Sağlamak
Kullanıcılara sayfada görüntülenen WebPart’lar üzerine işlem yapabilme imkanına ek olarak, mevcut webPart’lar arasından ilgi / ihtiyaçları doğrultusunda seçim yapabilmelerine imkan verebiliriz.  Bu işlem için CatalogZone kontrolünü ve bu kontrole bağlı olarak çalışan üç CatalogPart kontrolü, DeclarativeCatalogZone PageCatalogZone ve ImportCatalogZone kontrollerini kullanacağız.

Bu kontrolleri kısaca tanıyalım;

CatalogZone: CatalogPart kontrollerini (DeclarativeCatalogPart, PageCatalogPart ve ImportCatalogPart) içerir. Bu kontrol kullanıcının WebPart’lar arasından seçim yaparak sayfaya eklemelerini sağlayacak bir katalog oluşturmakta kullanılır.

DeclarativeCatalogPart: Kullanıcıların seçim yaparak sayfaya webpart eklemelerini sağlayacak bir katalog oluşturmayı sağlar.

PageCatalogPart: Kullanıcının çalışma zamanında kapattığı bir webpart’ı yeniden aktif hale getirmek için kullanılabilecek bir katalog sunar.

ImportCatalogPart: WebPart kontrollerinin sayfaya eklenebilmesini sağlar.

Şimdi önceki bölümlerde çalıştığımız proje üzerinde çalışmaya devam edelim..

  1. Sayfaya bir adet CatalogZone ekliyoruz. CatalogZone kontrolü, CatalogPart kontrolleri için ana kontroldür.
  2. Şimdi kullanıcıların listeden istedikleri webPart’ları sayfaya eklemelerini mümkün kılacak kontrolleri ekleyeceğiz. Şimdi CatalogZone kontrolüne ilk olarak bir DeclarativeCatalogPart, bir adet PageCatalogPart ve bir adet ImportCatalogPart ekliyoruz. CatalogZone kontrolü şimdi aşağıdaki gibi görünecektir.

  3. DeclarativeCatalogPart kontrolü geliştiricilerin sayfaya eklenebilecek web partlara dair bir katalog eklemelerini sağlar. Kullanıcılar sonradan bu kataloğu kullanarak istedikleri webpart’ları sayfadaki webpartzone’lara ekleyebilirler. PageCatalogPart kontrolü kullanıcının kapattığı WebPart’ları içeren bir katalog sunar. ImportCatalogPart kontrolü kaydedilmiş webpart’ları sayfaya import etmelerini sağlar.
  4. RadioButtonList kontrolüne aşağıdaki satırı ekliyoruz.
    <asp:ListItem>Catalog Modu</asp:ListItem>
  5. Kod kısmına ise aşağıdaki satırları ekliyoruz..

Case 2 : WebPartManager1.DisplayMode = _

WebPartManager.CatalogDisplayMode

  1. DeclarativeCatalogPart Tasks menüsünde Edit Templates linkini tıklıyoruz.
  2. Solution Explorer’dan google.ascx’i sürükleyerek boş alana bırakıyoruz.
  3. DeclarativeCatalogZone kontrolündeki Google Search kontrolünü sağ tıklayarak properties komutunu veriyoruz ve Properties ekranından title özelliğini “Google’a Sor” olarak düzenliyoruz.
  4. F5’e bastığımızda çalışma aşamasında sayfayı izleyelim..
    Catalog Modu’nu seçtiğimizde CatalogZone görüntüleniyor..

    Untitled olarak görünen webpart’ı seçerek şu an boş olan WebpartZone4’ü seçiyoruz ve Add butonunu tıklıyoruz.


    ve google arama webpart’ı webpartzone4’te görüntüleniyor.

 

  1.  Şimdi sayfadaki tüm webpart’ları Close linklerini kullanarak kapatalım.


Webpartları kapattığımızda sayfa bomboş görünüyor..


  1.  Bu noktada tekrar Catalog Moduna geçiyoruz ve PageCatalogPart’ın içeriğinin 4 olarak değiştiğini görüyoruz.
  2.  Kapattığımız webpart’ları tekrar aktif hale getirmek için istediğimiz webpart’ları işaretleyerek hangi webpartzone’da görüntülemek istediğimizi belirtiyoruz. Sonra Add butonunu tıklıyoruz.
  3. Sonra Imported Web Part Catalog’u tıklıyoruz.
  4. Bu arayüz ile kaydedilmiş webpart’ları seçerek sayfada istediğimiz webpartzone’da görüntüleyebiliriz.

Tabi bir webpart’ı import edebilmek için önce webpart’ları nasıl export edeceğimizi öğrenmemiz gerekiyor. Bu da bir sonraki bölümün konusu zaten..

Kadir Sümerkent
kadir@sumerkent.com