Asp.Net
12
Kas
2011
Asp.Net GridView
Kategori : Asp.NetGridViewEventAccess
Ekleyen : Zekeriya ALAN
Merhaba Arkadaşlar, Bu makalemde Asp.Net GridView kontrolü ile kod tarafında silme ve güncelleme işlerini nasıl yaparız, bununla ilgili bir uygulama yazacağım. GridView'den kısaca bahsetmek gerekirse; GridView verilerimizi sayfa üzerinde ızgara biçiminde göstermeye yarayan bir listeleme tipidir. Uygulamamızda kod tarafında GridView Event 'larından faydalanacağız. Kullanacağımız Event 'lar : GridViewDeleteEventArgs, GridViewEditEventArgs, GridViewCancelEditEventArgs, GridViewUpdateEventArgs 'dır. Projemizde silme ve güncelleme işlemlerini Access veritabanı üzerinden yapacağız.
Veritabanımızın görünümü, siz kendi veritabanınızı istediğiniz şekilde oluşturabilirsiniz.
GridView Kodlarımız.
   1:  <asp:GridView ID="GridView1" OnRowCancelingEdit="gridcancel" OnRowEditing="gridedit" 
   2:              OnRowDeleting="griddelete" OnRowUpdating="gridupdate" runat="server" GridLines="None" 
   3:              DataKeyNames="uyeId" AutoGenerateColumns="False" CssClass="grid">
   4:              <Columns>
   5:                  <asp:BoundField DataField="Adi" HeaderText="Üye Adı" />
   6:                  <asp:BoundField DataField="Soyadi" HeaderText="Üye Soyadı" />
   7:                  <asp:BoundField DataField="EmailAdresi" HeaderText="Üye E-Mail Adresi" />
   8:   
   9:                  <asp:CommandField ShowEditButton="true" />
  10:                  <asp:ButtonField CommandName="Delete" Text="Sil" ItemStyle-ForeColor="red" />
  11:              </Columns>
  12:              <AlternatingRowStyle BackColor="#f5f5f5" />
  13:          </asp:GridView>
GridView Kod tarafında kullanacağımız metodlarımız.
   1:  protected void gridedit(object sender, GridViewEditEventArgs e)
   2:  {
   3:      //Edit kodları..
   4:  }
   5:  protected void gridcancel(object sender, GridViewCancelEditEventArgs e)
   6:  {
   7:      //Cancel kodları..
   8:  }
   9:  protected void gridupdate(object sender, GridViewUpdateEventArgs e)
  10:  {
  11:      //Update kodları..
  12:  }
  13:  protected void griddelete(object sender, GridViewDeleteEventArgs e)
  14:  {
  15:      //Delete kodları..
  16:  }
İlk olarak verilerimizi GridView'e doldurmamızı sağlayan veriGetir isimli metodumuzu yazıyoruz.
   1:  protected void VeriGetir()
   2:  {
   3:      OleDbConnection con = new OleDbConnection(ConfigurationManager.ConnectionStrings["uyelerCon"].ConnectionString);
   4:      OleDbCommand cmd = new OleDbCommand("Select * From Uyeler", con);
   5:   
   6:      con.Open();
   7:   
   8:      OleDbDataReader dr = cmd.ExecuteReader();
   9:      DataTable tablo = new DataTable();
  10:      tablo.Load(dr);
  11:   
  12:      GridView1.DataSource = tablo.DefaultView;
  13:      GridView1.DataBind();
  14:   
  15:      dr.Close();
  16:      con.Close();
  17:  }
Veri getirme işlemimizi tamamladığımıza göre, GridView Event'larımızın yapacağı işlemleri belirtmeye başlayabiliriz. Edit metodumuzu yazıyoruz.
   1:  protected void gridedit(object sender, GridViewEditEventArgs e)
   2:  {
   3:      //Edit kodları..
   4:      GridView1.EditIndex = e.NewEditIndex;
   5:   
   6:      VeriGetir();
   7:  }
Edit Modundan çıkmak için gerekli kodlarımız.
   1:  protected void gridcancel(object sender, GridViewCancelEditEventArgs e)
   2:  {
   3:      //Cancel kodları..
   4:      GridView1.EditIndex = -1;
   5:   
   6:      VeriGetir();
   7:  }
Şimdi ise verilerimizi güncelleyeceğimiz Update metodunu yazıyoruz.
   1:  protected void gridupdate(object sender, GridViewUpdateEventArgs e)
   2:  {
   3:      //Update kodları..
   4:      string Id = GridView1.DataKeys[e.RowIndex].Value.ToString();
   5:      string ad = ((TextBox)GridView1.Rows[e.RowIndex].Cells[0].Controls[0]).Text;
   6:      string soyad = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
   7:      string email = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
   8:   
   9:      OleDbConnection con = new OleDbConnection(ConfigurationManager.ConnectionStrings["uyelerCon"].ConnectionString);
  10:      OleDbCommand cmd = new OleDbCommand("Update Uyeler Set Adi =@Adi, Soyadi=@Soyadi, EmailAdresi=@EmailAdresi Where UyeId=" + Id, con);
  11:   
  12:      cmd.Parameters.AddWithValue("@Adi", ad);
  13:      cmd.Parameters.AddWithValue("@Soyadi", soyad);
  14:      cmd.Parameters.AddWithValue("@EmailAdresi", email);
  15:   
  16:      con.Open();
  17:      cmd.ExecuteNonQuery();
  18:      con.Close();
  19:   
  20:      GridView1.EditIndex = -1;
  21:   
  22:      VeriGetir();
  23:  }
ve.. Son olarakta Delete işlemini yapacak metodumuzu yazıyoruz.
   1:  protected void griddelete(object sender, GridViewDeleteEventArgs e)
   2:  {
   3:      //Delete kodları..
   4:      string Id = GridView1.DataKeys[e.RowIndex].Value.ToString();
   5:   
   6:      OleDbConnection con = new OleDbConnection(ConfigurationManager.ConnectionStrings["uyelerCon"].ConnectionString);
   7:      OleDbCommand cmd = new OleDbCommand("Delete From Uyeler Where UyeId=@UyeId", con);
   8:   
   9:      cmd.Parameters.AddWithValue("@UyeId", Id);
  10:   
  11:      con.Open();
  12:      cmd.ExecuteNonQuery();
  13:      con.Close();
  14:   
  15:      VeriGetir();
  16:  }
Başka bir makalede görüşmek dileğiyle Hoşçakalın.

Örnek Proje : Asp.Net GridView
Düzenleme: 08.01.2012 | Çoklu silme modu eklendi.
31 Ekim Per, 2013 Coskun c.
Çoklu silme modu çalışmıyor. Sanırım cmd.Parameters.AddWithValue("@UyeId", item.ToString()); kısmında hata veriyor.
14 Kasım Per, 2013 Admin
Projeyi indirip denediğimde silme yaptı. Kodlar üzerinde oynamış olabilirmisiniz?