Ana Sayfa
Forumlar
Hakkımızda
Yükleniyor. Lütfen bekleyin ...
Kategoriler
ASP.NET
ADO.NET
Visual Basic .NET
Visual C# .NET
Visual Studio ve Araçlar
Windows Server System
Office System
.NET Framework
SQL Server
XML Web Servisleri
Yazılım Güvenliği
Yazılım Mühendisliği
Mobil Teknolojileri
Dynamics
Smart Client
Expression Studio
Silverlight
Kod Parçaları
Açık Kaynak Kodlu Uygulamalar
İş Zekası
Windows Mobile Embedded
0
Çıkış Yap
Üyelik Bilgilerimi Güncelle
Seminerlerim
Favorilerim
Ajanım
Yazgeliştir
Yazar olmak ister misiniz?
Forumlar
Kitap Önerileri
Haberler
Yazarlar
İpuçları
Görüşleriniz
Hakkımızda
İstatistikler
En son kayıt olan üye:
mucahidyusuf
Şuanki online üyeler (
4
) :
opiskin
,
show_stopper
,
barisgecer
,
denqesizz
ASP.NET Kategorisi
»
ASP.NET 2.0 - DetailsView ve GridView - 2
ASP.NET 2.0 - DetailsView ve GridView - 2
Print Versiyonu
Yazar:
Coskun SUNALI
Tarih:06.07.2005
Puan:
4,26
(Oy Kullanan:
23
)
Okuma Sayısı:
3514
Makaleyi İşaretle
Makale Özeti
Bu makalede ASP.NET 2.0 ile birlikte gelen DetailsView kontrolünü ve bu kontrolün GridView kontrolü ile ortak kullanımı üzerine birtakım bilgiler edineceğiz.
- Bölüm 2 -
Makale
ASP.NET 2.0 - DetailsView ve GridView - 2
Makalenin kapsadığı konular:
DetailsView kontrolü
DetailsView kontrolünün GridView kontrolüyle paralel şekilde kullanımı ile ilgili örnek
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.
Sıra geldi DetailsView kontrolümüzü oluşturmaya. Bunun için sayfamıza yeni bir "DetailsView" kontrolü sürüklüyoruz:
DetailsView kontrolümüzün ismini "dvAdresler", genişliğini de "400px" olarak değiştiriyorum:
Şimdi DetailsView kontrolümüzün ihtiyacı olduğu adres bilgilerini veritabanımızdan alıp getirecek olan AccessDataSource kontrolümüzü yine "Smart Tag" penceresindeki kısayolu aracılığı ile oluşturalım:
AccessDataSource kontrolümü "adsAdresler" olarak isimlendiriyorum:
Access veritabanımın yolunu gösteriyorum:
Bir sonraki adıma geçip "Select" SQL cümlemizi oluşturalım:
SQL cümlemizi oluşturduk. Senaryomuz gereği ihtiyacımız olan adresler seçmiş olduğumuz kişiye ait olan adresler olmalı. O halde "Where" ifademizi oluşturalım:
Daha önce iki tablo arasındaki ilişkinin "KisiID" alanına bağlı olarak kurulacağını söylemiştim. Bu sebeple "Column" değeri olarak "KisiID" alanını seçeceğim:
"Column" değerini seçtiğim anda "Operator" değeri de açıldı ve otomatik olarak "=" değeri verildi. Zaten ihtiyacımız olan durum bir eşitlik olduğu için bu değere dokunuyorum. Sıra geldi "Source" değerine. Bu değer üzerinde biraz ayrıntılı bilgi vermek istiyorum:
AccessDataSource, SqlDataSource gibi yeni DataSource kontrolleri içerisinde "UpdateParameters", "InsertParameters", "SelectParameters" ve "DeleteParameters" isimlerinde 4 adet parametre koleksiyonu bulunmaktadır. Bu parametreler sabit değerlere sahip olabileceği gibi bir kontrolün herhangi bir özelliğinin değerini, Session, Cookie, QueryString gibi çeşitli koleksiyonların içerisinde taşınan çeşitli değerlere de otomatik olarak erişebilirler.
DataSource kontrollerinin parametre değerlerine erişebilecekleri tanımlar tam olarak şu şekildedir:
None: Sabit bir değeri parametre değeri olarak verirsiniz.
Control: Belirli bir kontrolün, belirli bir özelliğini parametre değeri olarak verirsiniz. Örneğin "TextBox1" kontrolünün "Text" özelliği gibi.
Cookie: Çerezler içerisinde saklanan bir bilginin değerini parametre değer olarak verirsiniz.
Form: Herhangi bir form alanında tutulan değeri parametre değeri olarak verirsiniz.
Profile: ASP.NET 2.0 ile birlikte gelen "Profile" sisteminde tutulan bir değeri parametre değeri olarak verirsiniz.
QueryString: QueryString içerisinde tutulan bir değeri parametre değeri olarak verirsiniz.
Session: Session içerisinde saklanan bir bilginin değerini parametre değer olarak verirsiniz.
AccessDataSource kontrolünün parametre koleksiyonları ile ilgili kısa bir bilgiyi daha önce yazmış olduğum
ASP.NET 2.0 - GridView ve AccessDataSource
konulu makalede bulabilirsiniz.
Bizim örneğimizde kullanacağımız seçenek ise "Control" seçeneği olacaktır. "Control" olarak belirleyeceğimiz kontrol "GridView" tipindeki ve "gvKisiler" ismindeki, içerisinde kişilerin listelendiği GridView kontrolümüzdür.
GridView kontrolünün "SelectedValue" özelliği, GridView kontrolünde "DataKeyNames" özelliğinde "anahtar" olarak tanımlanmış alanın seçili satır için taşıdığı değer bize verecektir. Örneğin bizim tanımlamış olduğumuz "gvKisiler" ismindeki GridView kontrolünün "DataKeyNames" özelliği "KisiID" olarak AccessDataSource kontrolünün oluşturulması sırasında otomatik olarak tanımlanmıştır. Bu da demektir ki "gvKisiler" isimli GridView kontrolümüzün "SelectedValue" özelliği, bize seçili olan satırdaki kişinin sahip olduğu "KisiID" değerini döndürecektir.
Tüm bu açıklamalar sonucunda "Where" ifademizin tanımlamasına şu şekilde devam edebiliriz:
Zaten seçmiş olduğumuz kontrolün hangi özelliğinin kullanılacağı otomatik olarak seçildi:
Şimdi "Add" butonunu kullanarak bu ifadeyi ekliyoruz:
"OK" butonuna tıklayıp önceki ekrana geri dönüyorum:
Hepinizin gördüğü gibi SQL cümlem artık bir "Where" ifadesine sahip.
Şimdi bir sonraki ekrana, yani SQL cümlesini test edebileceğimiz ekrana geçiyorum:
Aranızda düşünenler olabilir; SQL cümlemiz için parametre tanımladık, o zaman bu cümleyi nasıl test edeceğiz?
Dilerseniz bunu "Test Query" butonuna tıklayarak hep birlikte görelim:
Daha önce de ASP.NET 2.0 ile ilgili makalelerimde kullandığım ve sizlerin de görmüş olduğunuz test ekranında, şimdiye kadar karşımıza hiç çıkmayan yeni bir ekran çıktı: "Parameter Values Editor". İşte bu ekran sayesinde, tanımlamış olduğumuz parametrelerimize, test amaçlı olarak değerler atayabiliyoruz.
Ben sadece örnek teşkil etmesi açısından "KisiID" parametresine "1" değerini vereceğim. Ancak tabi ki veritabanında hiç kayıt olmadığından kayıtların listelenmesini beklemiyorum:
Parametre değerimizi verdikten sonra sorgu başarı ile çalıştırıldı ve alan isimleri getirildi. Kayıt gelmeyeceğini zaten belirtmiştim.
"Finish" butonuna tıklayarak işlemimizi sonlandıralım ve sayfamıza bir göz atalım:
İlk "DetailsView" kontrolümüzü oluşturduk. Görünüş itibari ile DetailsView kontrolünü GridView kontrolünün dikey olanı gibi düşünebilirsiniz. Aslına bakarsanız bu doğru bir yaklaşım da olur. Ancak unutmamak gerekir ki, DetailsView kontrolü ile bir kerede birden fazla kayıt gösteremezsiniz. Tek şansınız sayfalama işlemini aktif hale getirip, kayıtlar arasında gezinmek olur. Sayfalama işlemini de senaryomuz dahilinde daha sonra göreceğiz.
Şimdi DetailsView kontrolü üzerinde görünmesinin anlamı olmayan sütunları gizleyelim. Ben "AdresID" ve "KisiID" sütunlarını gizleyeceğim:
"OK" butonuna tıklayıp sayfamıza tekrar bakalım:
Son olarak da yine "Auto Format" seçeneği ile DetailsView kontrolümüze daha güzel bir görünüş kazandıralım:
Ben "Professional" formatlamasını seçiyorum:
Sayfamıza geri dönelim:
Görsel ayarlarımızı yaptık.
Peki "Smart Tag" ekranında "Enable Editing", "Enable Deleting" gibi seçeneklerin yer almaması hiç dikkatinizi çekti mi?
Bu seçeneklere sahip değiliz çünkü görmenizi istedim ki, AccessDataSource kontrolünüzün oluşturulması sırasında "Generate INSERT, UPDATE, and DELETE statements" seçeneğini işaretlemedik. Yani DetailsView, GridView, DataList gibi yeni data kontrolleri sahip oldukları DataSource kontrolü "UpdateCommand", "DeleteCommand" ve "InsertCommand" özellikleri atanmamış ise, bu işlemlere izin vermiyorlar.
Şimdi bu seçeneklere de sahip olmak için AccessDataSource kontrolümüzü yeniden konfigüre edelim:
Zaten bundan sonraki tüm adımlar daha önce geçmiş olduğumuz adımlarla aynı:
Hatırlarsanız ekleme, silme, düzenleme SQL cümlelerimizi "Select" SQL cümlemizi oluşturduğumuz ekrandaki "Advanced" butonuna tıklayarak oluşturuyorduk:
Karşımıza çıkan ekrandan da ilk seçeneği işaretliyorduk:
"OK" butonuna tıklatıp, hemen ardından "Finish" butonuna tıklayarak AccessDataSource kontrolümüzün "UpdateCommand", "DeleteCommand" ve "InsertCommand" özelliklerinin oluşturulmasını sağlıyoruz.
Şimdi DetailsView kontrolümüzün "Smart Tag" penceresine tekrar göz atalım:
Makalenin devamı bölüm 3'te anlatılmaktadır.
Makale ile ilgili tüm soru ve sorunlarınızı
http://sunali.com/blog/archive/2005/07/05/32.aspx
adresinde yorum olarak sorabilirsiniz.
Coskun SUNALI
http://sunali.com
Makaleyi nasıl buldunuz?
Makaleyi nasıl buldunuz?
Çok Kötü
Çok Yararlı
Görüşleriniz : (opsiyonel)
v2.4
Geri Bildirim (Feedback)
Site içerisinde yazılan tüm makalelerin yazım ve yayınlama hakkı aksi belirtilmediği sürece sadece yazarlara aittir.
Yazgelistir.Com Ekibi - 2006 -
Yazgelistir.com