Pada artikel sebelumnya saya sudah menjelaskan mengenai dasar penggunaan WebParts. Kali ini saya akan memberikan contoh penggunaan control WebParts lainnya yaitu CatalogZone, DeclarativeCatalogZone, dan PageCatalogZone. CatalogZone merupakan container control untuk control Catalog. DeclarativeCatalogZone digunakan untuk menambahkan control ke dalam sebuah WebPartsZone secara run time. PageCatalogZone akan berisi control-control yang digunakan didalam semua WebPartsZone yang terdapat didalam WebForm dan digunakan untuk menampilkan kembali control yang sudah di close dari sebuah WebPartsZone.
Tutorial kali ini akan melanjutkan tutorial sebelumnya dengan memodifikasi WebParts yang akan digunakan. Langkah pertama kita akan kembali membuat WebUserControl baru yang nantinya bisa ditambahkan secara run time pada sebuah WebPartsZone.
1. Buat WebUserControl sederhana yang mempunyai fungsi untuk menghitung Sin dan Cos. Tampilannya seperti berikut :

2. Tambahkan CatalogZone ke WebForm. Tambahkan DeclarativeCatalogPart ke CatalogZone, lalu drag n drop WebUserControl di atas ke DeclarativeCatalogPart. Design nya seperti dibawah ini :

3. Modifikasi source code yang ada pada event SelectionIndexChanged untuk kontrol DropDownList :
1: protected void DropDownList1_SelectedIndexChanged(
2: object sender, EventArgs e)
3: {
4: switch (DropDownList1.SelectedIndex)
5: {
6: case 0:
7: WebPartManager1.DisplayMode =
8: WebPartManager.BrowseDisplayMode;
9: break;
10: case 1:
11: WebPartManager1.DisplayMode =
12: WebPartManager.DesignDisplayMode;
13: break;
14: case 2:
15: WebPartManager1.DisplayMode =
16: WebPartManager.CatalogDisplayMode;
17: break;
18: }
19: }
4. Browse web form, rubah mode display ke Catalog. Tambahkan control yang terdapat di DeclarativeCatalog ke dalam webpartzone yang dituju :


5. Tambahkan PageCatalogPart ke dalam CatalogZone :

6. Lalu browse kembali web formnya. Close salah satu control yang terdapat didalam webpartzone, misalnya control SitusBeritaOnline. Setelah di close maka control tersebut tidak dapat ditampilkan kembali. Untuk itulah kegunaan dari PageCatalogPart. Control ini akan menyimpan control yang sudah di close, jadi kita bisa menampilkannya kembali ke dalam webpartzone.

7. Cara lain untuk mengembalikan control yang sudah di close yaitu dengan membuka tabel aspnet_PersonalizationPerUser atau aspnet_PersonalizationAllUsers yang terdapat didalam database aspnetdb. Semua setting user preference disimpan di tabel tersebut. Jadi kita tinggal hapus saja record yang ada di tabel tersebut.

c u on the next webparts tutorial :)