Yazılım

/Yazılım

asp.net Gridview, İstenilen Cell’in Değerini Almak

Bu yazımızda asp.net standart nesnelerinden olan gridview’in bir özelliğine değineceğim. Öncelikle yapacağımızı kısaca özetlemek istiyorum: Birden fazla kolon ve satır bulunan gridview de seçilen hücredeki değerin alınmasını göstereceğim. Bu işlemi gridin _RowCommand olayında gerçekleştireceğiz. Bu yazıyı yazmadan önce ihtiyacımın olması sonucu araştırdığımda genellikle _PageIndexChanging olayında değerin yakalandığını anlatmışlar fakat benim ihtiyacım olan _RowCommand olayında seçilen hücredeki değeri yakalamak istediğim için kendi çözümümü bu olaya uyarladım. Öncelikle belirtmek isterim ki bu yazacağım yöntemin dışında da cell’in değerini alma yöntemleri vardır. Kodu paylaşmadan önce işin mantığına

Gridview de CheckBox Kontrolü

Gridview nesnemde bulunan değerlerden istediğim satırları yazdırmak için böyle bir yöntem kullanma gereği görmüştüm. Burada dikkat edilmesi gereken nokta: her döngüde satır sayısını bir artırılmalıdır. Aksi takdirde varsa yeni eklenecek satır olduğunda hataya düşer.  

“Thread was being aborted” Hatasının Anlamı ve Çözümü

Try-Catch yapısını içinde Response.Redirect ile yönlendime yaptığımızda: sayfa yönlendirme yaptığımızda aldığımız hata mesajıdır. Bu hata yönlendirme koduna kod satırı işler daha catch bloğumuza girer. Bu işlem arka planda çok hızlı bir şekilde gerçekleştiğin için bunu son kullanıcı farketmez. Eğer hata loglaması yapıyorsanız bu durum veritabanında gereksiz satırların kaydına yol açacaktır. Bu durumun önüne geçmek için kullanım biçimi: Response.Redirect(“Sayfanizzz.aspx”, false); biçimindedir. Eğer false değerini vermezseniz otomatik olarak true algılanır.

.net de Validation of viewstate MAC failed Hatası ve Çözümü

Konuda bahsettiğim hatanın çözümünü araştırmam sonucu işe yarar bir çözüm önerisi bulamadığım için böyle bir blog yazısı yazma gereği gördüm. Sorunun çözümünde kalıplaşmış cevaplardan olan web.config sayfasına: enableEventValidation=”false” enableViewStateMac=”false” … kodunu eklediğim halde sorunum çözülmemişti. Bunun üzerine http://www.a2zmenu.com/utility/machine-key-generator.aspx adlı siteden machine key üretim bunu web.config sayfama eklemem sonucu resim olarak eklediğim sorunu gidermiş oldum. Eğer web host’unuz firma sunucusunda değilde kendi sunucunuzda ise şu yöntemi de deneyebilirsiniz: IIS üzerinden Web Sitenizi seçin ve Machine Key menüsüne giderek => Generate keys => Apply

Response.Redirect Kullanarak İlgili Sayfa Yeni Pencerede Nasıl Açılır ?

Konuda bahsettiğim soruna çözüm olarak alternatif çözüm yönleri bulmam sonucu paylaşmak istedim. JavaScript’lerde sıkıntı yaşadığım için bazı yöntemler benim sistemimde sorun çıkarmıştı. Bu gibi nedenlerden dolayı çözüm hususunda uzun süre efor sarfetmiştim. Umarım benim gibi arkadaşlara yardımcı olur. Yöntem 1 (Önerdiğim) protected void btnYazdir_Click(object sender, EventArgs e) { string Parametre1 = lblMusteriID.Text; ScriptManager.RegisterStartupScript(Page, typeof(Page), "OpenWindow", "window.open('/SayfaAdiniz.aspx?Musteri=" + parametre_1 + " ');", true); } Yöntem 2 Response.Write("<script>"); Response.Write("window.open('/SayfaAdiniz.aspx?Musteri=" + gridListe.DataKeys[Convert.ToInt32(e.CommandArgument)].Value.ToString() + " ','_blank')"); Response.Write("</script>"); Yöntem 2 de ID yi gridden aldığım için ilgili alanı göstermek amacıyla silmedim. Faydalı olması dileğiyle

GridView’in RowDataBound Özelliğini Kullanmak

Bu yazımda konuda da bahsettiğim gibi asp.net aracı olan gridview in rowdatabound özelliğinden bahsedeceğim. Öncelike neden bu event a ihtiyaç duyduğu açıklayacak olursam: grid de ilgili satırdaki veriye göre renklendirme işlemi yapmak istediğim için bu olayı kullandım. Faydalı olması ümidiyle. protected void gridListe_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { switch ((e.Row.FindControl("lblHareketTuru") as Label).Text) { case "Stok Girişi": e.Row.BackColor = Color.Green; break; case "Stok Çıkışı": e.Row.BackColor = Color.Yellow; break; } } }