Arkadaşlar projelerimizde en çok kullanacağımız fonksiyonlardandır dropdownlist. Herhangi bir listeleme olayında il ilçe gibi bir sürü farklı verileri göstermede işimize yarar. Bu aracı asp.net sayfamıza ekledikten sonra pencerenin yan tarafında bulunan proporties kısmın dan da doldurabiliriz ama bu pek de sağlıklı olmaz. Fazla mudahale şansı sağlamaz bize. Bizde ne yapacağız bu aracımızı kod kısmından dolduracağız.
Şimdi sayfamıza 1 adet dropdownlist atalım ve form load olayına alt kısımdaki kodumuzu yazalım. Tabi veritabanı kısmınıkendinize göre ayarlamı unutmayalım.
SqlCommand sorgu = new SqlCommand("select * from Sayfalar order by SayfaId asc ", baglan.baglanti);
if (ConnectionState.Closed == baglan.baglanti.State)
baglan.baglanti.Open();
SqlDataReader dr = sorgu.ExecuteReader();
while (dr.Read())
{
ListItem litem = new ListItem();
litem.Text = dr["SayfaAd_tr"].ToString();
litem.Value = dr["SayfaId"].ToString();
ddlsayfalar.Items.Add(litem);
}
dr.Close();
baglan.baglanti.Close();
Bu kodlarımızı yazdıktan sonra .net sayfamızı çalıştıralım ve dropdownlist aracımızın içinde ki verilerin listelendiğini göreceksiniz.
Görüşmek Üzere,
Osman KURT
Yazılım Geliştirici ve Garfiker
Genelde C# ile kodlama yaparken yeni bir web sayfasında yönlendirme yapmak gerektiğinde aşağıdaki kodu kullanırız:
Response.Redirect("www.osmankurt.net");
Ama bu şekilde bir kullanımda sayfa aynı pencerede açılacağı için önceki sayfamız kaybolur. Eğer yeni navigasyon penceresiyle birlikte kaynak sayfasınında çalışmasını istiyorsanız o zaman aşağıdaki biçimde bir kullanım sorununuzu çözecektir.
string navigateURL = "www.osmankurt.net";
string target="_blank";
string windowProperties="status=no, menubar=yes, toolbar=yes";
string scriptText="window.open('"+navigateURL+"','"+target+"','"+windowProperties+"')";
Page.ClientScript.RegisterStartupScript(this.GetType(),"eşsizAnahtar",scriptText ,true);
navigateURL: Açmak istediğiniz sayfanız yolu
target: Açılacak sayfanın pencere biçimini belirler.
windowProperties: Açılacak pencerinin özellikleri (yes=göster / no=gösterme)
Böylece C# code behind sayfasından yeni sayfanın farklı bir pencerede açılmasını sağlayabiliriz.
Sonraki yazılarımda görüşmek üzere;
Osman KURT
Yazılım Geliştirici ve Grafiker
Asp.net ile geliştirdiğimiz projelerde html içeriğe sahip string ifadeleri veritabanına kaydetmek istediğimizde normal şartlarda hata alırız.Bunun nedeni sistem bu olayı bir XSS saldırısı olarak algılamaktadır.Bu yüzden bu tür istekler sunucu tarafından kabul edilmez ta ki siz müdahale edene kadar.
ValidateRequest = "false" yaparsak bu sorun ortadan kalkacaktır.İster herhangi bir sayfanın design tarafında ister tüm proje için geçerli olan web.config tarafında bu sorunu çözebiliriz.
Kullanmak istediğimiz sayfanın başına;
ValidateRequest="false"
Web.config tarafında ;
<pages validaterequest="false"></pages>
Eğer projemizi asp.net 4.0 ile geliştiriyor isek web.config dosyamızda küçük bir değişiklik daha yapmamız gerekiyor.
<system.web>
<httpruntime requestvalidationmode="2.0">
</httpruntime>
</system.web>
Bu yazımın bir benzerini daha önceki yazılarımda paylaşmıştım ama 4.0 la gelen bir özelliği atladığım için tekrar yazmanın daha iyi olacağını düşündüm, yararlı olması dileğiyle;
Osman KURT
Yazılım Geliştirici ve Grafiker