Asp.NET Gridview Üzerinde Silme İşlemi

Tarih : 26 Haziran 2010 by admin

Bu dersimizde Asp.NET in bize sağladığı imkanları kullanarak silme işlemini daha basit bir şekilde yapacağız. Aslında Asp.NET te silme işlemini çok farklı yollardan yapabiliriz. Derslerimiz ilerledikçe bu farklı yolları göreceğiz ve Asp.NET in avantajlarını anlayacağız.

Asp.NET te Gridview sadece verileri listelemez. Listelenen veriler üzerinde işlemler(Kayıt,Silme,Güncelleme) yapabilmemiz için bize bazı özellikler sunar. Gridviewde listelenen bir kaydın üzerinde silme,güncelleme,seçme gibi işlemler yaptığımızda her işlem için bazı olaylar gerçekleşir. Örneğin Gridview üzerinde bir kaydı silerken OnRowDeleting, güncellerken OnRowUpdating olayları gerçekleşir. OnRowDeleting=”mesajlar” yazıldığında silme işlemi gerçekleştiği zaman mesajlar adlı kod bölümüne gidilir. Şimdi kodları verelim ve sonra açıklamalara geçelim.

<%@ Import Namespace=”System.data” %>
<%@ Import Namespace=”System.data.oledb” %>
<%@ Page Language=”VB”%>
<script runat=”server”>
Sub sil(Src As Object, E As GridViewDeleteEventArgs)
Dim sorgu as new OleDbCommand
Dim baglanti As New OleDbConnection
Dim veriler As OleDbDataReader
baglanti.ConnectionString = “Provider=Microsoft.jet.oledb.4.0;data source=” & Server.MapPath(“as1.mdb”)
baglanti.Open()
sorgu.Connection = baglanti
sorgu.CommandText = “delete from Tablo1 where id=@silinenkayitid”
sorgu.parameters.add(“silinenkayitid”,GridView1.DataKeys(e.RowIndex).Value.ToString())
sorgu.executenonquery()
baglanti.Close()
response.Redirect(“mesajlar.aspx”)
End Sub
Sub Page_Load(Src As Object, E As EventArgs)
Dim sorgu as new OleDbCommand
Dim baglanti As New OleDbConnection
Dim veriler As OleDbDataReader
baglanti.ConnectionString = “Provider=Microsoft.jet.oledb.4.0;data source=” & Server.MapPath(“as1.mdb”)
baglanti.Open()
sorgu.Connection = baglanti
sorgu.CommandText = “select * from Tablo1″
veriler=sorgu.executereader()
GridView1.Datasource=veriler
GridView1.Databind()
baglanti.Close()
end sub
</script>

<html><body>
<form runat=”server”>
<asp:GridView DataKeynames=”id” OnRowDeleting=”sil” ID=”GridView1″ runat=”server” AutoGenerateColumns=”false” GridLines=”none”>
<RowStyle backcolor=”#0099CC”/>
<AlternatingRowStyle backcolor=”#ffffff”/>
<columns>
<asp:TemplateField>
<itemtemplate>
<table width=”258″ border=”0″ cellpadding=”0″ cellspacing=”0″>
<tr>
<td><%# Eval(“yazan”) %>, <%# Eval(“tarih”) %>    </td>
<td rowspan=”2″><asp:LinkButton CommandName=”Delete” ID=”lnkdel” runat=”server” Text=”Sil”></asp:LinkButton> </td>
</tr>
<tr>
<td><%# Eval(“Mesaj”) %>   </td>
</tr>
</table>
</itemtemplate>
<headertemplate>MESAJ PANOSU</headertemplate>
</asp:TemplateField>
</columns>
</asp:GridView>
</form>
</body></html>

Bu silme işleminde iki kod bölümü var. Sayfa yüklendiğinde(Page_Load) veitabanına bağlanıp verileri Gridview üzerinde listeliyoruz. Sil isimli kod bölümünde de Gridview de ilgili kaydın silme işlemini yapıyoruz. Kod bölümlerine bakmadan önce Gridview kontrolünü inceleyelim. Gridviewde önceki dersteki silme işleminden farklı olarak DataKeyNames ve OnRowDeleting özellikleri bulunuyor. Hatırlarsanız önceki derste silme işlemini kayıtların id alanına göre yapıyorduk. DataKeyNames=”id” özelliği ile Gridview üzerinde silme işlemi yaparken ilgili kaydın id alanına göre işlem yapacağımızı belirtiyoruz. OnRowDeleting=”sil” özelliği ile silme işlemi gerçekleştiğinde “sil” isimli kod bölümüne gidiyoruz.Tabiki bir kaydı silmek için bize bir link veya buton lazım. Önceki dersteki silme işleminden farklı olarak burada silme işlemini html etiketleri(<a href=”Sil.aspx”>Sil</a>) yerine, Asp.NET kontrolü olan LinkButon ile yapıyoruz. Linkbutton yerine Button veya Imagebutton da kullanabilirdik.

<asp:LinkButton CommandName=”Delete” ID=”lnkdel” runat=”server” Text=”Sil”></asp:LinkButton>

Burda LinkButton kullanırken önemli olan nokta CommandName=”Delete” özelliği. Bu özellikle butonun silme işlemi yapacağını belirtiyoruz. CommandName özelliği Delete,Update,Edit,Select,Cancel gibi değerler alabilir. Gridview deki diğer özellikler önceki dersteki ile aynı. Şimdi gelelim kod bölümlerini açıklamaya. Page_Load bölümünü açıklamaya gerek yok değil mi? Burda sadece verileri listeliyoruz. Bilmediğimiz bir şey yok. Bizim için önemli olan sil isimli kod bölümü. Bu kısmı adım adım anlatalım isterseniz. LinkButtonun Gridview üzerinde görünümü resimdeki gibi.

gridview silme

Sil butonuna bastığımızda CommandName=”Delete” özelliği ile silme yapacağımızı belirtiyoruz. Gridview üzerinde silme yaptığımız zaman OnRowDeleting=”sil” olayı devreye giriyor ve sil isimli kod bölümünüe gidiyoruz.Sil isimli kod bölümünde silinen kaydın id değerini almamız gerekiyor. Bunun için

sorgu.parameters.add(“silinenkayitid”,GridView1.DataKeys(e.RowIndex).Value.ToString())

kodunu kullanıyoruz.

GridView1.DataKeys(e.RowIndex).Value.ToString()

kodu Gridview1 üzerinde sildiğimiz kaydın id değerini bize verir.(Önceki dersimizde silinen kaydın id değerini almak için request.QueryString(“id”) kodunu kullanmıştık) Silinecek kaydın id değerini aldıktan sonra ne yapacağımızı biliyoruz artık. Diğer kısımlar aynı.

Eğer silme işleminde bir onay penceresi çıkarmak isterseniz LinkButtona kontrolüne

OnClientClick=’return confirm(“Are you sure you want to delete this entry?”);’

kodunu eklememiz yeterli. Yani şöyle;

<asp:LinkButton OnClientClick=’return confirm(“Are you sure you want to delete this entry?”);’ CommandName=”Delete” ID=”lnkdel” runat=”server” Text=”Sil”></asp:LinkButton>

Onaylama resimdeki gibi gözükecektir.

Gridview Silme Onay

Son olarak şunu belirtelim.

sil isimli kod bölümünde

Sub sil(Src As Object, E As GridViewDeleteEventArgs)

kısmında dikkatimizi GridViewDeleteEventArgs özelliği çektimi acaba. Daha önce

Sub sil(Src As Object, E As EventArgs)

şeklinde görmüştük. GridViewDeleteEventArgs tanımlaması ile Gridview üzerinde sadece silme işlemlerinde oluşan değerleri(kaydın id si gibi) E isimli bir parametre aracılığı ile değişkenlere aktarabiliyoruz. Mesela bu özellik güncelleme işleminde GridViewUpdateEventArgs olacak.

Tüm bu kodlardan sonra bu silme yöntemi öncekinden zor görünebilir. Fakat silme, Güncelleme,Kayıt işlemlerini Gridview üzerinde yaparken Gridview kontrolünün “Olaylar” ını kullanmak daha avantajlıdır.

Yazıyı Paylaşın!

2 Yorumlar

  1. Okan Says:

    hocam anlatımlarınız için çok teşekkür ediyorum.sizden ricam fireworkste siteyi tasarlayıp html cıktısını alıp visual studio da asp.net ile kodlamak istiyorum ama tam bi net kaynak bulamadım bana bu konuda yardımcı olursanız çok müşekkür olurum….

  2. Selahattin Says:

    makaleniz çok yararlı olmuş. gerçekten faydalandım. teşekkürler

Yorum Yaz

Takvim

Mayıs 2012
Pts Sal Çar Per Cum Cts Paz
« Oca    
 123456
78910111213
14151617181920
21222324252627
28293031