3 Haziran 2010 Perşembe

Sharepoint 2010 Visual Web Part Connections With Ajax

Daha önce sharepoint 2010'da webpartlar arası bağlantı ile ilgili 2 yazı yazmıştım.
İlk yazımda visual webpartlar arası bağlantı kurup veri alışverişinde bulunmuştuk ancak sayfa postback olmaktaydı.
İkinci yazımda ise sayfa postback olmadan bağlantı sağlamıştım ancak burada da örnekte görüldüğü üzere sayfa üzerinde bulunacak kontrollerimizi dinamik olarak oluşturup sayfaya eklemiştik.

Daha önceki projelerimizde bu yöntemle webpart geliştirmekteydik ve bu yöntem hem bizim için meşakkatli hem de görsel açıdan çok sıkıntı oluşturmaktaydı. Bu yöntemi SmartPart ile bir nebze olsun aşmıştık ancak üçüncü parti yazılım olmasından ötürü aklımızda soru işaretleri oluşturmuştu. Kesin çözümü ise Sharepoint 2010 da yerleşik olarak gelen visual webpartı sayfaya ekleme yöntemini uzun süre kullandık.

Yukarıda webpart ekleme yöntemlerimizi kısa bir biçimde tekrar ettik. Aynı konu şimdi tekrar karşımızda :)
Yazdığım 2 yazıdaki konuları birleştirmek için düşünmeye başladığımda mesai arkadaşım yan masamda oturan Abdülkadir Culfa'ya da konuyu aktarıp üzerinde biraz kafa yorduktan sonra visual webpartlar arasındaki bağlantıyı ajax ile kontrolleri dinamik olarak eklemeden çözdük.

Kendi geliştirdiğimiz webparta geçmeden sharepoint bize sağladığı bağlantı yönteminin nasıl olduğuna bir bakalım.
Ben bu örnekte "Müşteriler" ve "Siparişler" olarak iki liste oluşturdum ve Sipariş listesi ile Müşteri listesinde Müşteriler listesinin ID kolonunu ortak kolon yaptım.
Yukarıda görüldüğü üzere oluşturduğum listeleri sayfama direk ekledim ve birbirleri ile bağlantıyı kurdum.

Burada da sayfa postback olmakta olduğunu yukarıdaki ekranda görmekteyiz.
Artık kendi geliştireceğimiz webpartlara geçebiliriz.
Öncelikle AjaxConsumer ve AjaxProvider webpartları oluşturalım.
"Müşteriler" ve "Siparişler" adında iki listem arasında Müşteriler listesinin ID kolonu ortak alan olarak kullanılmakta ve iki liste arasında ilişkiyi sağlamakta.
Provider webpartım siparişleri listelerken, consumer webpartım ise providerdan gelen MusteriIdsine göre müşterinin bilgileri listelemekte.
Burada dikkat etmemiz gereken nokta: Usercontrollerin designer kısmında sayfamızda bulunan kontrollerden Provider WebPartında Gridview kontrolünü ve Consumer WebPartında UpdatePanel kontrolünü public yapmamız olacaktır.

Public yaparak WebPartımızdan sayfamızdaki kontrollere ulaşabilmekteyiz.


Böylelikle sayfa postback olmadan visual webpartlarımız arası bağlantıyı sağlamış olduk.


Hiç yorum yok: