Asp.Net Gridview Çoklu Silme İşlemleri
Merhaba Arkadaşlar ,Bu bölümde contanier controllerden asp.net Gridview 'i incelemeye çalışacağız.Herzamanki gibi blogun amacı olan bir şekilde detaylı bir örnek üzerinden anlatmaya çalışacağım.Ozaman ilk Uygulamamız gelsin .
Asp.Net Gridview Çoklu Silme İşlemleri
Bu bölümde hotmailin içinde bulunan çoklu silme ve seçme yapabildiğimiz gridview örneğimizle başlayalım .
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Configuration; using System.Data; using System.Data.SqlClient; namespace GridviewKullanimi { public class Calisan {// Veri Tabanınını Modellediğimiz Calisan Class'ımız public int CalisanID { get; set; } public string CalisanAdi { get; set; } public string Cinsiyet { get; set; } public string Sehir { get; set; } } public class CalisanIslemleri {//Sayfalarda kullandığımız Metodları içeren classımız public static List<Calisan> TumCalisanlarGelsin() { //List ile calisan tipinde verileri tutacağını söylüyoruz List<Calisan> calisan = new List<Calisan>(); string baglantim = ConfigurationManager.ConnectionStrings["Bagla"].ConnectionString; //Garbage Collector ile veri tabanına baglanma İşlemlerimizi gerçekleştiriyoruz using (SqlConnection cnn = new SqlConnection(baglantim)) { SqlCommand cmd = new SqlCommand("Select * from Calisan ", cnn); cnn.Open(); SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { // Verileri okuyup calısan adındaki bir instance dan alacağız //Yukarda listimiz bizden calisan istedemekteydi Calisan cl = new Calisan(); cl.CalisanID = Convert.ToInt32(rdr["CalisanID"]); cl.CalisanAdi = rdr["CalisanAdi"].ToString(); cl.Cinsiyet = rdr["Cinsiyet"].ToString(); cl.Sehir = rdr["Sehir"].ToString(); //calisan ismindeki generic listimize rdr ile okuyup doldurmuş olduğumuz classımızı //ekliyoruz calisan.Add(cl); } } return calisan;// Yazdığımız metod bizden geriyer genericlist tipinde <calisan > döndürmemizi istiyor } public static void CalisanSil(int CalisanID) { // ID ye göre gelen veri Siliniyor string baglantim = ConfigurationManager.ConnectionStrings["Bagla"].ConnectionString; using (SqlConnection cnn = new SqlConnection(baglantim)) { SqlCommand cmd = new SqlCommand("Delete From Calisan Where CalisanID=@CalID", cnn); cmd.Parameters.AddWithValue("@CalID", CalisanID); cnn.Open(); cmd.ExecuteNonQuery(); } } public static void CalisanSil(List<string> GelenCalisanIDleri) { // Tüm Metodların static yapılması sürekli instance almak istemeyişim string baglantim = ConfigurationManager.ConnectionStrings["Bagla"].ConnectionString; using (SqlConnection cnn = new SqlConnection(baglantim)) { string gelenIDler = string.Empty;// string tipinde boş bir değişken oluşturuldu // amaç List<string> gelencalisanIDleri okunanları tutması foreach (string item in GelenCalisanIDleri) { gelenIDler += item + ",";//her okunan ID 1,2,3,4,5, seklinde yazılıyor } gelenIDler = gelenIDler.Remove(gelenIDler.LastIndexOf(","));// en sonda olan fazladan // atılmış "," işaret kaldırıldı string silineceklerlistesi = "Delete From Calisan where CalisanID IN (" + gelenIDler + ")";// Sorguda bulunan listeden gelecek Idlerin tamamı silineceklistesi adlı değişkene Aktarıldı SqlCommand cmd = new SqlCommand(silineceklerlistesi, cnn); cnn.Open(); cmd.ExecuteNonQuery(); } } } }
=====================================================================
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace GridviewKullanimi { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { CalisanGetir();// Eğer Form PostBack Değilse CalisanGetir() Metodmuz tarafından dolacak //ve bu metod her bir yapdığımız silme işleminden sonra tekrar çağılmakta } } private void CalisanGetir() { grdSonuc.DataSource = CalisanIslemleri.TumCalisanlarGelsin(); grdSonuc.DataBind(); } protected void chckTum_CheckedChanged(object sender, EventArgs e) { // Amacımız sayfamızda eklemiş olduğumuz tümünüsec checkbox secili ise diger checkboxlarıda // Secmek eğer secili değilse hiç biri secili olmasın foreach (GridViewRow item in grdSonuc.Rows) { ((CheckBox)item.FindControl("ChckSecilen")).Checked = ((CheckBox)sender).Checked; } } protected void ChckSecilen_CheckedChanged(object sender, EventArgs e) { // Amacımız Tümcheckbozları secilip içinden herhangi birinin checked özelliği kakması // Durumunda Tümcheckboxları secilmesini sağladığımız chckTum ismindeki checkboxımızından // Check'ının kakması Unutulmamalıdırki gridview bir contanierdir . //Doğal olarak içerisindeki kontrolleri direk erişim yoktur //bu aşamada FindControl("aranacakkontrol"); bulunabilir CheckBox chBas = (CheckBox)grdSonuc.HeaderRow.FindControl("chckTum"); if (chBas.Checked) { chBas.Checked = ((CheckBox)sender).Checked; } else { bool secilimi = true; foreach (GridViewRow item in grdSonuc.Rows) { if (!((CheckBox)item.FindControl("ChckSecilen")).Checked) { secilimi = false; break; } } chBas.Checked = secilimi; } } protected void btnSil_Click(object sender, EventArgs e) { // Projemizin amacı ola çoklu silme işlemlerinin gerçekleşebilmesi //için list<string> tipnde tüm secilmiş ıdleri alacağız List<string> secililisteSil = new List<string>(); foreach (GridViewRow item in grdSonuc.Rows) { if (((CheckBox)item.FindControl("ChckSecilen")).Checked) { string calisanID = ((Label)item.FindControl("Label1")).Text; secililisteSil.Add(calisanID); } } if (secililisteSil.Count > 0) { lblMesaj.ForeColor = System.Drawing.Color.Blue; CalisanIslemleri.CalisanSil(secililisteSil);// 2.YOL lblMesaj.Text = secililisteSil.Count.ToString() + "Adet calisan Silindi"; //foreach (string item in secililisteSil) 1.YOL //{ // CalisanIslemleri.CalisanSil(Convert.ToInt32(item)); //} CalisanGetir(); } else { lblMesaj.ForeColor = System.Drawing.Color.Maroon; lblMesaj.Text = secililisteSil.Count.ToString() + " Adet Kayıt Sectiniz.Lütfen Listeden Bir Kayıt Seçiniz"; } } } }
Asp.Net GridView Çoklu Secme Silme İşlemleri... paylaşan: sinan-d-arslan-1
Asp.Net GridView Çoklu Seçme Silme Video 2 paylaşan: sinan-d-arslan-1
1 yorum :
Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.
Kaydol:
Kayıt Yorumları
(
Atom
)
Başarılı bir anlatım olmuş.
YanıtlaSil