21 Haziran 2015 Pazar

ListView İçerisinde Birden Fazla LinkButton Kullanımı

Merhaba arkadaşlar,

Bugün WebForm ile her satırında iki linkbutton yer alan bir listview kontolünü yapacağız. Bunun için öncelikle sayfamıza bir listview ekleyelim ve ardından da görüntülemek istediğimiz üyelerle birlikte 2 adet de linkbutton ekleyelim. Oluşturacağımız listview içerisinde bir satırın rengini açık diğer bir satırın rengini de koyu yapacağım. Sonuçta oluşacak listview görüntüm şu şekilde olacak:


ListView içerisinde bir satır açık ve bir satır koyu renk kullanımı için <ItemTemplate> ve <AlternatingItemTemplate> yapılarını kullanacağız. Birinin css class yapısına açık renk diğerine de koyu renk vereceğiz. Öncelikle istediğimiz görünüm için ayarlarımızı yapalım.



Yukarıdaki şekilde yer alan listview yapısını oluşturmak için aspx sayfamızdaki source bölümünde yer alan form etiketinin içine aşağıdaki kodları yazıyoruz. Burada HiddenField şeklinde tanımladığımız "Id" değeri listview içerisinde görüntülenmeyecek fakat arkaplanda işlemlerimizi yaparken kullanabileceğiz.


ListView içerisinde yer alan linkbutton seçeneklerinden herhangi birine tıkladığımda bulunduğu satırın "Id" değerini bana geri vermesini, ayrıca update butonu için onun ilgili kodlarını ve delete için onun ilgili kodlarını çalıştırmasını istiyorum. Key olarak Id değerini kullanabilmek için listview attribute değerlerinden biri olan "DataKeyNames" yapısını kullanmalıyız.  Update ve Delete seçeneklerinden hangisinin seçildiğini kod tarafında belirleyebilmek için her birine CommandName değeri eklemeliyiz ve listview içinde "OnItemCommand" attribute değerini kullanmalıyız.Yaptığımız son değişikliklerle listview kod yapımız şu şekilde olacaktır:



Tasarım aşamasını tamamladıktan sonra kodda boş bir yere sağ tıklayıp View Code diyelim ve seçili linkbutton için yapılacak işlerimizi tanımlayalım. 


Yukarıda yer alan kodda ListViewDataItem tipinde data verimizi elde ediyoruz. DataKeys özelliğinden faydalanarak key değeri olarak tanımladığımız "Id" değerini elde edip postId isimli string tipinde bir değişkene atıyoruz. Elde ettiğimiz postId değerini başka sayfalarda kullanmak için "Session" içerisine yolluyoruz. Session, bize sayfalarımız arasında veri taşımamıza yardımcı olur.

Kodda yer alan  e değeri içindeki CommandName ile bize linkbutton attribute değerinde tanımladığımız "Update" veya "Delete" değeri dönmektedir.  Gelen değer "Update" ise Guncelle.aspx sayfasına session içerisindeki postId değeriyle gönderiyoruz. Eğer gelen değer "Delete" ise SilOnay.aspx sayfasına yine session içerisindeki postId değeriyle yolluyoruz.

Linkbutton kullanarak yapacağınız işlemleri belirleyebilir ve linkbutton içerisinde yapacağınız bu işlemi seçili satırın Id değerini yukarıdaki gibi alıp da Id değerine göre veri güncelleme ve veri silme işlemlerini yapabilirsiniz.


Hiç yorum yok:

Yorum Gönder