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
3 kişi tarafından 3.3 olarak değerlendirildi
- Currently 3,333333/5 Stars.
- 1
- 2
- 3
- 4
- 5