Gridviewda Checkbox ile birden fazla kayıt üzerinde işlem yapmak

merhabalar asp.net gridview kontrolunde birden fazla kayıt üzerinde iŸlem yapmak için checkbox kullanacağız.
öncelikle gridviewimiza chk için bir kolon ekleyip içine checkbox controlunden bir itemtemplate atıyoruz.

<asp:TemplateField HeaderText="Secim">

<ItemTemplate>

<asp:CheckBox ID="chkSelect" runat="server" Text='<%# Eval("id") %>' />

</ItemTemplate>

</asp:TemplateField>

selectten gelen kayıtlarımızdaki id kolonunu bu kontrolun textine bind ediyoruz.
silme işlemi yapıcak olur isek bir adette seçili olanları sil buttonu ekliyoruz.
click inde gridview üzerindeki satırlardan checkboxların tickli olanlarını yakalayacağız

ArrayList secilmisidler = new ArrayList(); // yakalayacağımız idleri almak için ben arraylist kullandım

secilmisidler.Clear(); // iki kere tıklayarak aynı id yi cifter cifter almaması için arraylisti boşaltıyoruz gereksiz olabilir ama benim paranoyam :D

for (int i = 0; i < GridView1.Rows.Count; i++) // satır sayısı kadar gridde dön

{

GridViewRow row = GridView1.Rows[i]; // gelen satırı gridviewrow classı ile yakaladık

CheckBox chk = ((CheckBox)row.FindControl("chkSelect")); // burada gelen satır üzerinde chkselect "checkbutton kontrolumuzun idsi" i bulup checkbox classına cast etttik

if (chk.Checked == true) // bu checkbox kontrolunun durumu checkli ise dedik

{

secilmisidler.Add(chk.Text); // textini arrayliste ekledik

}

}

// buraya kadar gridviewin check kolonundaki checkboxların check edilmişlerini secilmisidler arraylistine attık gerekli işlemi yapmak içinse...

SqlConnection con = new SqlConnection();

SqlCommand com = new SqlCommand();con.ConnectionString =

"bağlantınız";com.CommandText = "delete from tblbilmemne where id=@id";

com.Connection = con;

foreach (string eleman in secilmisidler) // secilmisidler arraylistindeki her bir string için donuyoruz

{

com.Parameters.Clear(); // her seferinde yeni parametreye gelen id değişeceği için parametreleri boşaltıyoruz, yoksa bir önceki id parametre üzerinde kaldığı için carlıyor.

try

{

con.Open();

com.Parameters.AddWithValue("@id",Convert.ToInt16(eleman)); // id parametremize sıradaki stringi yani id yi integer a cevirerek ekledik

com.ExecuteNonQuery(); // ve buradada hareketimizi tamamlıyoruz.

}

catch (Exception exm)

{

Response.Write(exm.Message);

}

finally

{

con.Close();

}

}

umarım basit anlaşılır ve işinize yarar bir örnek olmuştur

26 Eylül 2008 16:26 by makinalp | Yorumlar (2) | Permalink

Yorumlar

Yorum eklemek istermisiniz ?


 

  Country flag

biuquote
  • Yorum
  • Canlı önizleme
Loading



Hakkımda

Açıköğretim Üniversitesi İktisat Fakültesi İktisat Bölümü ve Maltepe Üniversitesi Bilgisayar Programcılığı bölümlerinde okumaktayım.


BilgeAdam Bilgi Teknolojileri'nden almış olduğum Yazılım Uzmanlığı eğitiminden sonra kendimi yazılım teknolojileri üzerine geliştirmem sonucu iş hayatına girdim.


Ağırlıklı olarak .Net Framework Platformunda çeşitli etkileşimli, interaktif, uygulama, otomasyon, program yazılımları ,Web & Wap Uygulamaları yazıyorum.


Freelance olarak Outsource danışmanlık vermekte ve projeler yapmaktayım.

.Net 2.0, OOP, DAL, NHibernate, Mobil.Net, Asp.Net, Ajax, .Net 3.0, .Net 3.5, Linq, Html, Css Teknolojilerini kullanıyorum.  

Translation

 

Partnerler


Add to Technorati Favorites


Son Yorumlar

Comment RSS

Anket

Blogumu Ne Sıklıkla Ziyaret Ediyorsunuz?







Sonuçlar

Etiket Bulutu