Asp.Net 2.0 GridView Kontrolünde Dinamik Update,Delete İşlemleri
Bu makalemizde, AspNet 2.0 ile birlikte gelen ve yeni kontrollerden birisi olan GridView kontrolü üzerinde, veri güncelleme ve veri silme gibi işlemlerin programatik olarak nasıl yapılacağını incelemeye çalışacağız.
Gridview veri kaynağından gelen verilerin düzenli bir şekilde istemci ekranında görüntülenmesini sağlar.Asp.Net ten önce verilerin liste halinde görüntülenmesi için Table kullanırdık.Asp.Net 1.0 ve 1.1 ile geliştirdiğimiz web uygulamalarımızda ise çok kullanışlı bir veri kontrol nesnesi olan Datagrid’i kullanırdık.Datagrid ile birlikte çeşitli veri kaynaklarından çekilen veriler çok kolay bir şekilde listelenebiliyordu.Asp.Net 2.0 ile birlikte Datagrid yerini daha gelişmiş bir kontrol olan Gridview ‘a bıraktı.
Gridview kontrolünün öne çıkan özelliklerini sayacak olursak;
Yeni datasource kontrollerini destekler.
Mobile ve diğer uygulamalarla uyumluluğu çok fazladır.
Hiç kod yazmadan gridview üzerinde paging ve sorting işlemleri yapabiliriz.
Hiç kod yazmadan delete ve update işlemlerini yapabiliriz.
Şablonlar ile çalışma özelliği oldukça gelişmiş.
Yeni bir kontrol olan gridview sqldatasource ile birlikte kullanıldığında tek satır kod yazmadan tamamen otomatik olarak update,delete,insert işlemleri yapılabiliyor fakat bazı sayfalarda gridview için sorgulara bağlı olarak birden fazla datasource kullanabiliyoruz.Böyle durumlarda gridview üzerinde insert,update,delete işlemlerimizi dinamik olarak yapmak zorundayız.Gridview üzerinde update ve delete işlemleri sırasında
RowEditing,RowCancelingEdit,RowUpdating,ve RowDeleting eventları tetiklenir.Bizim amacımız bu eventları code-behind tarafında yakalamak olacak.Bu eventları kullanacağımız bir senaryo düşünerek uygulamamıza başlıyalım.Projemizde personel bilgilerinin tutulduğu basit bir veritabanımız olsun.Bu veritabanına ait Table’ımızı tasarlıyalım.
Kaldığımız yerden devam edecek olursak eklediğimiz bounfield alanlarını tek tek templatefield’a çevirerek bazı değişiklikler yapacağız.Bunun için column’ı seçip Convert this field into a TemplateField linkine tıklıyoruz.Column’ları TemplateField’a çevirdikten sonra Gridview’ın task panelinden Edit Templates alanına girip cinsiyet sütununun EditItemTemplate bölümündeki label’ı silip cinsiyet seçimi için bir Dropdownlist kontrolü ekliyoruz.Daha sonra tarih sütununun EditItemTemplate alanındaki textbox kontrolüne ajax control toolkit extenderlarından Calender Extender controlünü ekliyoruz.Databinding ifadesi olarak Bind("dogumtarih", "{0:dd/MM/yyyy}") yazıyoruz.Bind ifadesinde ilk parametremiz referans sütunu,ikinci parametremiz formatlama.Bu işlemleri tamamladıktan sonra unutmadan son olarak sayfamızda ajax controlü kullandığımız için sayfamıza bir tane ScriptManeger ekliyoruz.Bu işlemleri tamamladıktan sonra artık code-behind tarafında kodlamaya geçebiliriz.
İlk olarak Page_Load da veritabanından verilerimizi çekip gridview e bağlıyoruz.Daha sonra RowEditing,RowCancelingEdit,RowUpdating, ve RowDeleting eventlarını code-behind tarafında yakalıyoruz.
string cnct = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["grid"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{