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 CommandField'ı TemplateField'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.
İ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>Basit iki işlemin ardında gridview oldukça kullanışlı bir hale gelebiliyor. Sonuç aşağıdaki gibi...
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandName="Edit" Text="Değiştir"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False"
CommandName="Delete" Text="Sil"
OnClientClick="return confirm('Silmek istediğinizden emin misiniz?');">
</asp:LinkButton>
</ItemTemplate>
6 yorum:
İ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...
gercekten sagolun sizin sayenizde kendimizi geliştiriyoruz
Bu olay IE dışında bir tarayıcıda çalışmıyor değil mi? (Opera,Firefox vb. gibi)
Teşekkürler.
Ç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.
.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.
Ben denedim çalıştı teşekkürler.
Yorum Gönder