Kurumsal Otomasyon Çözümlerinde Zirve

DetailsView Yardımı ile GridView’de Insert İşlemi

DetailsView Yardımı ile GridView Kontrolünde Insert İşlemi

ASP.NET kontrollerinden GridView ile bir çok işlemi kolaylıkla yapabilmekteyiz. Bunlar arasında kayıt göstermek, sayfalamak, güncellemek, silmek gibi çok yararlı işlemler işimizi gayet kolaylaştırmaktadır. Bu işlemler arasında Insert olayı biraz daha zordur. Bunu yapmak için çeşitli zorluklar olmakla beraber birkaç yol ile bu işlem de yapılabilmektedir.

Bu yazımda DetailsView kontrolü yardımı ile GridView kontrolünde Insert işlemi gerçekleştireceğiz.

Not1: Bu makalenin anlaşılabilmesi için GridView kontrolüne ait temel hususların bilindiğini varsayıyorum.

Not2: Ben Sql Server veritabanındaki bir tablo ile çalışıyorum. Siz başka bir veri kaynağı ile de çalışabilirsiniz. Tabloma ait yapı aşağıdaki gibidir.

detailsview-yardımı-ile-gridviewde-insert-işlemi-1

detailsview-yardımı-ile-gridviewde-insert-işlemi-1

Tablonuzda PrimaryKey alanının olması zorunludur.

1.Adım: ASP.NET projesi açınız.

2.Adım: Sayfanıza bir adet GridView ve SqlDataSource ekleyiniz.

3.Adım: SqlDataSource’nizi tüm kayıtları getirecek şekilde ayarlayınız ve Advanced seçeneği yardımı ile Generate Insert, Update, Delete Commands seçeneğini aktif hale getiriniz. Source kısmında SqlDataSource’ye ait görüntü aşağıdaki gibidir.


DeleteCommand=”DELETE FROM [kitaplar] WHERE [ID] = @ID”
InsertCommand=”INSERT INTO [kitaplar] ([ID], [resim], [ad], [fiyat], [aciklama], [kat]) VALUES (@ID, @resim, @ad, @fiyat, @aciklama, @kat)”
SelectCommand=”SELECT * FROM [kitaplar]”
UpdateCommand=”UPDATE [kitaplar] SET [resim] = @resim, [ad] = @ad, [fiyat] = @fiyat, [aciklama] = @aciklama, [kat] = @kat WHERE [ID] = @ID”>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.Adım: GridView’e ait DataSource özelliğini SqlDataSource1 olarak ayarlayınız.

detailsview-yardımı-ile-gridviewde-insert-işlemi-2

detailsview-yardımı-ile-gridviewde-insert-işlemi-2

5.Adım: GirdView’e yukarıdaki ekrandaki EditColumns Yardımı ile ButtonField ekleyiniz ve CommandName özelliğine INSERT yazınız.

detailsview-yardımı-ile-gridviewde-insert-işlemi-3

detailsview-yardımı-ile-gridviewde-insert-işlemi-3

6.Adım: GridView’de Smart Tag yardımı ile Edit Templates seçeneğini seçiniz. EmptyDataTemplate seçeneğiin seçili olduğundan emin olduktan sonra içerisine bir adet DetailsView ekleyiniz ve DataSource’una SqlDataSource1’I gösteriniz.

detailsview-yardımı-ile-gridviewde-insert-işlemi-4

detailsview-yardımı-ile-gridviewde-insert-işlemi-4

7.Adım: DetailsView’in DefaultMode özelliği için Insert seçeneğini seçiniz.

detailsview-yardımı-ile-gridviewde-insert-işlemi-5

detailsview-yardımı-ile-gridviewde-insert-işlemi-5

Bu şekilde kontrollerimizi hazır hale getirdik. Normal durumda tüm kayıtlar listelenecek, “Ekle” butonuna tıklandığında ise DetailsView kontrolü devreye girecektir. Bu işlemleri yapacak kodları yazalım.

8.Adım: GridView Kontrolünün RowCommand eventine aşağıdaki kodu yazınız.

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == “Insert”)
{
GridView1.DataSourceID = “”;
GridView1.DataBind();
}
}

Burada güzel bir yapı mevcut. GridView’de “Ekle” butonuna tıklandığında “Insert” olayı tetiklenecek işte bu durumda GridView1.DataSourceID = “”; komutu ile GridView boşaltılacak ve EmptyDataTemplate Devreye girecek. Kısacası DetailsView kontrolü devreye girecek. DetailsView kontrolünde de Insert işlemi yapılacağı için Kayıt ekleme olayını gerçekleştirmiş olacağız.

9.Adım: DetailsView’in ItemInserted Event’ine aşağıdaki kodu yazınız.

protected void DetailsView1_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
{
GridView1.DataSourceID = “SqlDataSource1”;
GridView1.DataBind();
}

Burada kayıt yapıldıktan sonra GridView eski haline döndürülmektedir.

10.Adım: DetailsView’in Item Command Event’ine aşağıdaki kodu yazınız.

protected void DetailsView1_ItemCommand(object sender, DetailsViewCommandEventArgs e)
{
if (e.CommandName == “Cancel”)
{
GridView1.DataSourceID = “SqlDataSource1”;
GridView1.DataBind();
}
}

Burada ise Kayıt yapılmayıp “Cancel” butonuna tıklandığında GridView tekrar eski haline getirilmektedir.

Umarım hepiniz için yararlı olmuştur. Diğer yazılarımda görüşmek üzere.

Yorum Yapılmamış

Bir cevap yazın