DetailsView NOT: Bu yazı www.yazgelistir.com sitesinden alıntıdır. Orijinal belgeye şurada ulaşabilirsiniz: http://www.yazgelistir.com/makale/asp-net-2-0-detailsview-ve-gridview-1 DetailsView nedir? DetailsView; veritabanı, XML dosyası ve benzeri şekilde içerisinde bilgi saklayabileceğimiz herhangi bir kaynağın içerisinde tutulan bilgilerin; kayıt bazında gösterilmesi, düzenlenebilmesi, silinebilmesi ve gerektiğinde ilgili veritabanlarına yeni kayıtların eklenebilmesi sırasında kullanılabilecek bir kontroldür. Yazılım geliştiricilere formların tasarlanması sürecinde sağladığı kolaylıkların yanısıra, çift yönlü binding yapabilmesi de (bu konu örnek dahilinde anlatılacaktır) en büyük avantajları arasındadır. "DetailsViewMode" tipindeki özelliği sayesinde görüntüleme, ekleme ya da silme modlarından hangisinde olduğu değeri alınabilir ve ya "ChangeMode" isimli methodu yardımı ile kolayca bu durumlar arasında geçiş yapabilir. DetailsView kontrolünün GridView kontrolüyle paralel şekilde kullanımı ile ilgili örnek Birlikte hazırlayacağımız örnek veritabanında bulunan kullanıcılara birden fazla adres bilgisinin yeni kayıt olarak tanımlanması; bu bilgilerin görüntülenmesi, silinmesi ve düzenlenmesi ile ilgilidir. Not: Bu makaledeki örnekler sırasında, ASP.NET 2.0 ile birlikte gelen yeni kontroller olan "GridView" ve "AccessDataSource" kontrolleri kullanılacaktır. Bu kontroller ile ilgili ayrıntılı bilgiyi, nasıl oluşturuldukları gibi konuları daha önce yazmış olduğum ASP.NET 2.0 - GridView ve AccessDataSource konulu makalede bulabilirsiniz. Bu makalede yeni birer GridView ve AccessDataSource kontrolleri oluşturulması aşaması takip edilecek fakat detaylarına girilmeyecektir. Öncelikle Access uygulamamızı açarak veritabanımızı, tablolarımızı (Kisiler ve Adresler) ve bu tabloların kolonlarını oluşturalım. "Kisiler" tablosu:
"Adresler" tablosu:
Not: İki tablo arasında "KisiID" kolonu ile iliski kurulacaktır. Bu makaledeki örnek uygulamanın senaryosunda kişi tanımlama bulunmamaktadır. Yalnızca kayıtlı olan kişi bilgileri üzerine "DetailsView" kontrolü yardımı ile yeni adres tanımlama, görüntüleme, düzenleme ve silme işlemleri yapılacaktır. Bu sebeple "Kisiler" tablosuna birkaç kaydı kendim ekleyeceğim: Şimdi hazırlamış olduğum Access veritabanını projeme ekleyeceğim:
Öncelikli olarak yapmamız gereken kişilerin listeleneceği bir GridView kontrolü oluşturmaktır. Bu GridView kontrolünün oluşturulması sırasında oluşturulacak olan AccessDataSource kontrolü için
ekleme, güncelleme ve silme SQL cümleleri oluşturulmayacak; sadece seçme cümlesi oluşturulacaktır. Sayfamıza yeni bir GridView kontrolü ekleyelim:
GridView kontrolümüzün ismini "gvkisiler" olarak değiştirelim:
Kişi bilgilerini veritabanımızdan alıp, GridView kontrolümüze getirecek olan AccessDataSource kontrolümüzü "Smart Tag" penceresi yardımı ile yaratalım: AccessDataSource kontrolümüzün ismini "adskisiler" olarak tanımlayalım:
Access veritabanımızın yolunu gösterelim:
Bir sonraki adıma geçip "Select" SQL cümlemizi oluşturalım. Bu adım sırasında birden fazla tabloya sahip olduğumuz için öncelikle ihtiyacımız olan tabloyu belirtmeliyiz:
Oluşturmuş olduğum SQL cümlemi bir sonraki adımda test ediyorum:
"Finish" butonuna tıklayarak işlemi sonlandırıyorum ve sayfamı kontrol ediyorum:
GridView kontrolüm otomatik olarak kolonlarımı aldı. Şimdi bu kolonlardan "KisiID" değerinin gösterenin, yani ilk kolonun görünmesine gerek olmadığı için bu kolonu gizleyeceğim. Bu işlem için "Smart Tag" penceresindeki "Edit Columns..." butonuna tıklamam yeterli: Açılan ekrandan da "KisiID" isimli kolonu seçip, "Visible" özelliğini "false" olarak değiştiriyorum:
Şimdi yapmamız gereken adresleri üzerinde işlem yapılacak olan kişiyi seçmemize yarayacak "Seç" butonunu oluşturmak. Bunun için yine tek yapmamız gereken "Smart Tag" penceresinden "Enable Selection" seçeneğini seçmek:
Artık "Seç" butonuna, Visual Studio 2005'in otomatik olarak yarattığı şekliyle, İngilizce olarak sahibiz. Şimdi bu butonu Türkçe hale getirelim. Bunun için yine "Smart Tag" penceresinde "Edit
Columns..." butonuna tıklıyorum ve sonrasında "Select" isimli kolonun "SelectText" özelliğini "Seç" olarak değiştiriyorum: Sayfamıza tekrar göz atalım:
Sayfamızdaki değişiklikleri kaydedip, bir de tarayıcı aracılığı ile sayfamızı kontrol edelim:
Sayfamızın daha güzel görünmesi için GridView kontrolümüzü daha güzel bir formata sokalım:
Ben "Professional" isimli formatı seçtim. Şimdi tarayıcımızda açmış olduğumuz sayfamızı yenileyelim: