Bu makalemde Gridview Kontrolü ile çalışırken yapılabilecek silme ve güncelleme işlemlerinde kullanıcı onayını almayı inceleyelim.
Normal şartlarda GridView nesnesinde bulunan kayıtlar için Enable Editing ve Enable Deleting yapılarını kullandığımız zaman kullanıcı onayı alınmadan kayıtlar silinir ya da güncellenir. Halbuki herhangi bir dikkatsizlik sonucu, bu durum çeşitli sorunları da doğurabilir. İşte bu gibi durumlarda OnClientClick Eventinden yararlanabiliriz.
Hemen uygulamamıza başlayalım ve olayı daha net inceleyelim.
Not: Bu makalenin sorunsuz anlaşılabilmesi için gridview kontrolü ile ilgili temel hususların bilinmesi gerekmektedir.
1. Herhangi bir veri kaynağından verileri GridView nesnesine aktaralım.Enable Deleting ve Enable Editing özelliklerini aktifleştirelim.
.bmp)
1.YOL-Javascript Fonksiyonu yazarak…
2. Source kısmında HEAD tagı içerisine ufak bir javascript kodu ekleyelim.
<head runat="server">
<title>Onay Kutusutitle>
<script language="javascript" type="text/javascript">
function Onay()
{
var onay=confirm('Yaptığınız işlem kalıcı bir değişikliğe neden olacaktır');
if (onay)
{
return true ;
}
else
{
return false ;
}
}
script>
head>
3. Smart Tag ile EditColumns seçeneği ile gelen ekrandan Convert this field into a TemplateField seçeneğini seçelim. Artık Sil ve Güncelle kontrollerine source kısmından ulaşabiliriz.

4. Source kısmından ItemTemplate tagı içerisine yerleşmiş olan güncelle ya da silme kontrollerinden istediğinizi bulun, OnClientClick eventini ekleyin ve javascript fonksiyonumuzu referans olarak gösterin.
EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1"
runat="server" CausesValidation="False"
CommandName="Edit" Text="Güncelle">
asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server"
CausesValidation="False" CommandName="Delete" Text="Sil"
OnClientClick="return Onay()"> //Ben Delete işlemi için ekledim.
asp:LinkButton>
ItemTemplate>
…
…
5. Artık herşey yolunda. Deneyelim.

2.YOL-Javascript Kodunu Direkt OnClientclick Event’ine ekleyerek.
Şimdi Onay Javascript fonksiyonunu yazmadan direkt itemtemplate tagı içerisine gidelim ve aşağıdaki gibi düzeltme yapalım.
EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1"
runat="server" CausesValidation="False"
CommandName="Edit" Text="Güncelle">
asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server"
CausesValidation="False" CommandName="Delete" Text="Sil"
OnClientClick="return confirm('Yaptığınız işlem kalıcı bir değişikliğe neden olacaktır');"> asp:LinkButton>
ItemTemplate>
…
…
Diğer makalelerde görüşmek üzere...
ENGIN DEMİROĞ www.e-learner.net