10 Temmuz 2008

GridView'da Silme ve Güncelleme İşlemi Onayı

GridView kontrolünde silme ve güncelleme işlemleri yapılırken işlem tamamlanmadan önce kullanıcıdan onay alınmak istenilebilir. Özellikle silme işlemleri geri dönüşü olmayan sorunlara yol açabileceği için bu tip bir işlemi kazara bir butona basılarak yapılmasına izin vermemek son derece doğru olacaktır. GridView kontrolünde yapacağımız çok basit 2 değişiklik ile Update ve Delete işlemlerinin kullanıcıdan onay alarak gerçekleştirilmesini sağlayabiliriz.

İlk adımda Update ve Delete butonlarımızın bulunduğu CommandFieldTemplateField'a dönüştürmek gerekecektir. Böylece artık Update ile Delete butonlarına erişebilir, gerekli istemci olayına istediğimiz JavaScript kodunu ekleyebiliriz. GridView'in smart tag ikonundan Edit Columns linkine tıklayıp açılan pencereden CommanField kolonunu seçmeli ve sağ kısımda yer alan Properties penceresinin altındaki Convert this field into a TemplateField linkine tıklamalıyız. Böylece artık Update, Delete, Cancel gibi butonların kontrol tanımlamalarına sayfanın HTML kodlarından erişebileceğiz.

Gridview - Kolonu templatefielda çevirme

İkinci adımda ise gerekli butonun OnClientClick olayına ufak bir JavaScript kodu eklememiz gerekecektir. Böylece onay işleminde sunucuya gidilmeden, istemci tarafında yapılacak ve gereksiz bir postback işlemi de engellenmiş olacaktır. Aşağıda Delete butonuna tıklandığında kullanıcıdan onay alma işlemini gerçekleştirecek kod parçası yer almaktadır.

<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandName="Edit" Text="Değiştir"></asp:LinkButton>&nbsp;
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False"
CommandName="Delete" Text="Sil"
OnClientClick="return confirm('Silmek istediğinizden emin misiniz?');">
</asp:LinkButton>
</ItemTemplate>
Basit iki işlemin ardında gridview oldukça kullanışlı bir hale gelebiliyor. Sonuç aşağıdaki gibi...

Gridview - Silme işlemi için onay

6 yorum:

Adsız dedi ki...

İngilizce bir kaynakta görmüştüm ama anlayamamıştım. Açıklayıcı güzel bir yazı olmuş, çok işime yarayacak bu. elinize sağlık...

Adsız dedi ki...

gercekten sagolun sizin sayenizde kendimizi geliştiriyoruz

Adsız dedi ki...

Bu olay IE dışında bir tarayıcıda çalışmıyor değil mi? (Opera,Firefox vb. gibi)

Teşekkürler.

Uğur UMUTLUOĞLU dedi ki...

Çalışması gerekir. Ben genellikle bu tip örnekleri Mozilla'da da test eder sonra bloga eklerim. Emin olmamakla birlikte çalışacağını söyleyebilirim.

Test eder ve çalıştığını görürseniz yorum olarak bu başlığa tekrar yorum bırakın bence.

Adsız dedi ki...

.NET te MySQL dışında hiç bir veritabanı kullanmadım. Daha önce benzer birkaç örnek denemiştim FF de çalışmıyor du. (Hatta MS e çok södüm bu nedenle) Eğer çalışan bir uygulama örneği varsa kodları downloada verebilirseniz çok güzel olur.

Teşekkürler.

Oktay Bozdemir dedi ki...

Ben denedim çalıştı teşekkürler.