Dr. Barış Gökçe

Dr. Barış Gökçe

Değişkenler bir programlama dilinde temel verileri saklamak ve bu verileri sonradan kullanmak için kullanılan bellek bölgeleridir.

 Değiskenlerin Özellikleri;

  • Değiskenin tipi tanımlanmalıdır.
  • Bir değerleri olmalıdır.
  • Tanımlama yaparken büyük-küçük harf ayrımı vardır
  • Değisken adları rakamla baslayamaz, program tarafından saklanmıs kelimeler kullanılamaz.
  • Özel karakter içermez örneğin /,*,-,+
  • Bosluk olmamalıdır,
  • Türkçe karakter kullanılmamalıdır. Sğüöçı gibi…
  • Özel sözcükler (dilin komutları vb.) kullanılmaz.

 Değisken adında kullanılmayacak kelimeler…

 Değişken adında kullanılmayacak kelimeler

   

C#'ta bir değişkende sadece bir tür veri saklayabiliriz. Bu veri türleri şunlardır;

Değişkenler

C#' da değişken şu şekilde tanımlanır;

Değişken tanımlama

 Kod içerisinde de şu şekilde kullanılır:

private void Form1_Load(object sender, EventArgs e)
{
int yas;
yas = 30;
string AdimSoyadim;
AdimSoyadim = "Barıs GÖKÇE";
MessageBox.Show("Adım: " + AdimSoyadim + " " + yas.ToString() + " yasındayım");
}

Not: Int16, Int32, Int64 .Net  veri tipleridir. Visual C# dilindeki karşılıkları short, int, long veri tipleridir.

string yazi = "Veri tipleri örnekleri";

bool b = true;

char karakter = "A";

decimal numeric = -123456789;

double cift = -1. 234E-120;

float tek = 3.32E+100;

byte bayt = 255;

short kisasayi =  -32000;

int tamSayi = 2000000000;

long uzunSayi = -123456789123456789;

Büyük veri tiplerinden küçük veritiplerine dönüşüm sırasında, değer kayıpları meydana gelebilir. Örneğin float tipinden short tipine yapılacak bir dönüşümde virgülden sonraki sayılar kaybedilecektir.

float virgullu = 1.12;

short kisasayi = (float) virgullu;

//kisasayi değişkeninin son değeri 1 olur.

 OPERATÖRLER

Aritmetik Operatörler

  • Çarpma *, Bölme /, Toplama +, Çıkarma -
  • Üs Alma ^, Mod Alma (Mod) 

Karşılaştırma Operatörleri

  • Küçük <, Küçük Eşit =<, Büyük >
  • Büyük Eşit =>, Eşit =, Eşit Değil <>

String Operatörler

  • &, Split, ToCharArray, Insert, Remove

ARİTMETİKSEL OPERATÖRLER

Bu operatörler aritmetik işlemlerinde, sayılarla veya sayı tutan ifadelerle kullanılır.

  • Çarpma

int sayi = 100;

sayi = 200 * 2;

  • Bölme

double bolum;

bolum = sayi / 23;

  • Çıkarma

int sonuc = bolum - 100;

  • Toplama

int toplam;

toplam += sonuc; // Bu ifade , "toplam = toplam + sonuc" ile aynı anlama gelir.

Aritmetik operatörleri, eşittir ifadesi ile beraber kullanılırsa, işlem değişkenin kendisi ile yapılır.

Örnek:

int m = 5;

int n = 4;

m = m + n; ya da m+=n; // m=9 dur.

Yani her iki işlemin sonucunda da m=9 değerini alırken n'nin değeri değişmez.

  • Mod Alma

int kalan = toplam %42;

//Sonuç, toplam değişkenindeki değerin 42 ile bölümünden kalan sayıdır.

Tekli Arttırma - Azaltma İşlemleri

++ değiskeni 1 er arttırma operatörü
int i;
i++; // i = i + 1; demektir.

-- değiskeni 1 er azaltma operatörü

int i;
i --; // i = i - 1; demektir.

Değiskenin önünde veya arkasınd olmasına göre farklı sonuçlar verir.Yani “i++” ile “++i” aynı değildir. 

 1 er Arttırma ve Eksiltme

  • ++i i'yi 1 arttırır ve ++i'yi kullanan ifadeye yeni değeri getirir.
  • i++ i'nin o andaki değeri kullanılır ve kullanıldıktan sonra değeri bir arttırılır.
  • --i i'yi bir azaltır ve azaltılan değer --i'yi kullanan ifadeye yeni eksi değeri getirir.
  • i-- i'nin mevcut değeri kullanılır sonra i bir azaltılır.

 Örnek; 

 

Karşılaştırma Operatörleri

Bu operatörler veri tiplerini birbirleriyle karşılaştırmak için kullanılır. Bu operatörler ile yapılan işlemlerin sonucunda true ya da false değeri döner. Karşılaştırma operatörleri yalnızca sayı tipleri üzerinde yapılmaz.

 double sayi = 1.5 ;    float sayi2 = 1.3 ; 

Küçük              sayi2 < sayi          //Sonuç:True

Küçük Eşit       sayi2 <= sayi        //Sonuç: True 

Büyük              sayi2 > sayi          // Sonuç: False   

Büyük Eşit       sayi2 >= sayi       // Sonuç: False  

Eşit                  sayi2 == sayi       // Sonuç: False  

Eşit Değil         sayi2 !=sayi         //Sonuç: True     

  

HESAP SIRASI

  • C# dilinde (ya da diğer dillerde) bazı operatörlerin hesap öncelikleri vardır.

Csharp da hesap öncelik sırası

STRİNG OPERATÖRLERİ

String tipleri üzerinde gerçekleştirilen işlemler için tanımlı operatörlerdir.

  • String tipindeki değişkenleri birbirine bağlama "+" operatörü ile gerçekleşir.

string isim, soyad;

string IsimSoyad = isim + " " + soyad ;

  • Split

Belirtilen ayraca göre yazıyı böler, çıkan sonuç String dizisinde tutulur. Ayraç karakterleri sonuç dizisinde yer almaz.

Karakterler

  • char 1 byte 0-256       'a' 'z' 'A' 'Z' '?' '@' '0' '9'
  • Özel karakterler “\” isareti basta konularak gösterilir.

'\n' : alt satıra geç karakteri
'\t' : sekiz karakter sonraya atla
'\'' : tek tırnak
'\\' : \ isareti (ters bölü)

Karakter Dizileri

  •  Karakter dizileri (string) arka arkaya gelen karakterlerden olusmustur. 

  • İfadenin sonlandırılmasında ‘\n’ karakteri kullanılır.
     Örnek :
    “” Bos değer
    string a = “Merhaba \n C# \n Programına Hosgeldiniz ”;
    Verbatim strings
    string ad = @“2.5” disket”;

 

 

 

  • String içerisinde arama (string.IndexOf("");)

         Tarih Zaman (DateTime)

  • Tarih islemlerinde C# dili için özel “DateTime” sınıfı kullanılmaktadır.
  • DateTime sınıfı “yıl,ay,gün,saat,saniye,milisaniye ” bilgilerini tutabilir.

 

          Sabit Değiskenler (Constant)

  • Sabit değiskenlere atanan değerler asla değistirilemezler.
  • Normal değisken gibi tip tanımlanır.
  • İslemlerde kullanılır ama atama yapılamaz.
  • Tanımlama yapılırken “const” ifadesi basa konularak tanımlama yapılır.
  • Değerleri tanımlanırken belirlenir, sonradan değistirilemez.

           const int ilplaka = 34;

Cuma, 23 Mart 2012 08:32

C# Dersine Giriş

C# NEDİR? C#'a GİRİŞ

 C# programlama dili, Windows işletim sistemi üzerinde .Net platformunda en çok tercih edilen dillerden biridir.  C# programlama dili C++ dilinin kompleks özelliklerini ve Visual Basic dilinin görsel yeteneklerinide alarak yeni bir dil olarak karşımıza çıkmıştır. C dilin bilen bir kişi çok rahat bir şekilde bu programlama dilini kullanabilir. Bu dersimizde sizlere C# 2005-2008-2010 versiyonlarına uyumlu komutlarını ve uygulamalarını anlatacağız. İlk olarak ücretsiz olarak Microsoft Visual Studio 2010 Professional Trial versiyonunu yükleyebilirsiniz. 

Microsoft Visual C# 2005 uygulamasının başlatılması için ;

 Programs | Microsoft Visual C# 2005 Express Edition   seçin.

Microsoft Visual C# 2005 uygulamasının başlatılması

Yeni bir porje oluşturmak için

File Menüsü | New Project menüsünü tıklayın. En son çalıştığınız projelerimizi File | Recent Projects menüsünden açabilirizVisual C# 2005 açılış ekranı

 

Karşımıza gelen ekranda "Windows Application" seçeneğini seçip "Name" kısmına projeye vereceğimiz adı, Location kutusu ise ismini belirlediğiniz projenin saklanacağı klasörün yerinin yazılacağı yerdir.  Bu değerleri yazdıktan sonra "OK" tuşuna basarak ilk uygulamamızı başlatabiliriz.

 C# Program Proje Türü

Visual Studio .Net üzerinde ilk C# uygulama programımız oluşmuş oldu. Projemizde ilk olarak Form1.cs[Design] formu karşımıza gelmektedir.

Form Ekranı, tasarım ekranıdır. "Toolbox" penceresinden sürükleyerek formun üzerine bırakabilir.

Form Ekranı üzerinde View Code ;sağ tıklama ile kod ekranına geçiş sağlanmaktadır.

Solution Explorer: Uygulama dosyalarinin yer aldigi sekmedir.

Toolbox: windows uygulamalari için kullanilabilecek kontroller yer alir. (View sekmesinde bulunur)

Properties: Formu üzerinde herhangi bir kontrolü seçmemiz durumunda aktifleşir. İstediğimiz özelliğe istediğimiz değeri atayabiliriz. Örnegin; Button’un özellikleri , Üstünde yazan yazi(text), rengi, fontu, arka plan rengi, boyutu…
 

C# da ilk proje

 "Toolbox" penceresinden sürükleyerek formumuzun üzerine yerleştirdiğimiz kontrollerin üzerine mouse ile çift tıkarsak bizi kod yazabileceğimiz Form1.cs ekranına götürecektir. Tasarımda yapılan bütün değişiklikler otomatik olarak kodlara yansıayacaktır.

Buradaki "using" ile başlayan ifadeler .Net platformu içerisinde kullanacağımız çeşitli kütüphanelerdir. Bu kütüphanelerin amacı  programcıların işlerini kolaylaştırmak üzere geliştirilmiş sınıflar topluluğudur.

C# kod ekranı

 Namespace ad alanıdır.

c# namespace ad alanı

 

Kodlar küme parantezleri parantezleri arasına yazılır. Her parantez mutlaka bir kapanış olmalıdır.

c# parantezler

 

Bu kısım Windows Form sınıfıdır.

 

Form1.cs[Design] formuna mouse ile iki defa tıkladığımızda Form1 yüklendiği anda çalışacak kodların yazılacağı private void Form1_Load metodu karşımıza gelecektir.  

 

Şimdi sıra ilk kodumuzu yazmaya geldi. Kod yazarken öncelikle dikkat etmemiz gereken noktalardan biri ,C#’da küçük-büyük harf ayrımıdır. Yani “System” yazacağınız yere “system” yazarsak hata verir. Bir de program komutlarını içeren her satırdan sonra ";" işareti bulunur. Bu satırın bittiği anlamını taşır ve kullanılması zorunludur.

Aşağıdaki ekranda MessageBox.Show ekrana mesaj kutusu göndermektedir. "//" ifadesi ile başlayan satır açıklama satırıdır derleyeci bu satırdaki bilgileri kod olarak görmez. Ekrana messagebox kutusunda mesaj göstermek için aşağıdaki kodlar formload olayının içerisine yazılır.

 

Bu kodları yazdıktan sonra programı derlemek için Build menüsünde Build Solution'u tıklayın. Yada F6 kısayol tuşunu kullanabilirsiniz.

 

Programımızın çıktısı aşağıdaki gibidir.

 

Cuma, 23 Mart 2012 08:30

Hata Yakalama(Exception Handling)

İSTİSNA YÖNETİMİ(EXCEPTION)

İstisnalar, programımızın çalısma zamanında yani program çalısırken ortaya çıkan olağan dısı durumlardır.

-Programcılık dilinde "programın kırılması" ile adlandırılan olaylarda aslında bir istisnanın meydana geldiğini göstermektedir. Örneğin bir sayının sıfıra bölünmesi "DivisionDivideByZeroException"

-istisnasının ortaya çıkmasına sebep olmaktadır.

-Baska bir istisna örneği ise uyumsuz tipler arasında değer aktarımı gerçeklestirmeye çalısmaktır. Bir programcı olarak kod üzerinde her ne kadar detaylı çalısma yapsakta kullanıcı faktörü göz önünealındığında çalısma zamanı hatalarının ( Runtime Error ) ortaya çıkması olasıdır.

csharp hata yakalama

Asağıdaki örneğimiz, çalısma zamanında ortaya çıkabilecek bazı istisnaları göstermektedir.

private void Form1_Load(object sender, EventArgs e)
{
int sayi1 = 15;
int sayi2 = 0;
int sonuc = 0;
sonuc = sayi1 / sayi2; // Sıfıra bölünme hatası
int durum;
sonuc = Convert.ToInt32("Selam"); // Tür dönüsüm hatası
}

 

 

İstisnaları ortaya çıkartmak ve bu istisnaları yakalayıp yönetmek ayrı islerdir. Bu makalemizde ortaya çıkmıs olan istisnaları yakalamayı ve yönetmeyi isleyeceğiz. Bir istisnayı yakalamak için öncelikle istisnanın ortaya çıkabileceği kod aralığını tespit etmek gerekir. Bu islem gerçeklestirildikten sonra asağıdaki ifadelerden birini kullanarak istisna yakalama islemi gerçeklestirilir.

1. try catch
2. try finally
3. try catch finally


private void Form1_Load(object sender, EventArgs e)
{
int sayi1 = 15;
int sayi2 = 0;
int sonuc = 0;
try // Dene
{
sonuc = sayi1 / sayi2;
// Normalde hata olması gerekiyor
}
catch // Olmazsa Bunu Yakala
{
MessageBox.Show("Bölünme hatası var, Değiskenleri Kontrol et");
}
}

c# try catch

private void Form1_Load(object sender, EventArgs e)
{
int sayi1 = 15;
int sayi2 = 0;
int sonuc = 0;
int durum;
try
{
sonuc = sayi1 / sayi2;
Convert.ToInt32("Selam");
// Normalde hata olması gerekiyor
}
catch (Exception hata)
{
MessageBox.Show("Bölünme hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
catch (Exception hata)
{
MessageBox.Show("Dönüsüm hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
}

private void Form1_Load(object sender, EventArgs e)
{
int sayi1 = 15;
int sayi2 = 0;
int sonuc = 0;
int durum;
try
{
sonuc = sayi1 / sayi2;
Convert.ToInt32("Selam");
// Normalde hata olması gerekiyor
}
catch (Exception hata)
{
MessageBox.Show("Bölünme hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
catch (Exception hata)
{
MessageBox.Show("Dönüsüm hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
}

private void Form1_Load(object sender, EventArgs e)
{
int sayi1 = 15;
int sayi2 = 3;
int sonuc = 0;
int durum;
try
{
sonuc = sayi1 / sayi2;
Convert.ToInt32("Selam");
// Normalde hata olması gerekiyor
}
catch (DivideByZeroException hata)
{
MessageBox.Show("Bölünme hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
catch (FormatException hata)
{
MessageBox.Show("Dönüsüm hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
}

private void Form1_Load(object sender, EventArgs e)
{
int sayi1 = 15;
int sayi2 = 3;
int sonuc = 0;
int durum;
try
{
sonuc = sayi1 / sayi2;
Convert.ToInt32("3");
// Normalde hata olması gerekiyor
}
catch (DivideByZeroException hata)
{
MessageBox.Show("Bölünme hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
catch (FormatException hata)
{
MessageBox.Show("Dönüsüm hatası var, Değiskenleri Kontrol et\n" + hata.Message);
}
finally
{
MessageBox.Show(“Program Hata Olsada, Olmasada Buraya Girer");
}
}

 



Cuma, 23 Mart 2012 08:25

Asp.Net Servervariables

Sunucu hakkında bir takım bilgileri döndürür. Kullanım şekli aşağıdaki gibidir:

Response.Write("Kullanıcı IP Adresi:" + (Request.ServerVariables["remote_addr"] + "<br>"));

Response.Write("Host: " + (Request.ServerVariables["remote_host"] + "<br>"));

Response.Write("Host: " + (Request.ServerVariables["remote_host"] + "<br>"));

Response.Write ("Sunucu İsmi:" +(Request.ServerVariables["server_name"] + "<br>"));


Request.ServerVariables["degisken_adi"] şeklinde bir kod ile değeri alabiliriz veya bir değişkene yükleyebiliriz.  degisken_adi  bölümünde aşağıdaki değerler kullanılır:

ASP.NET’ te Response ve Request Nesneleri

İnternet sayfalarımızı görüntüleyebilmek için kullanıcının (client) sunucudan (server) istekte bulunması gerekir. Tarayıcıya yazdığımız web adresi bir istektir. Sunucu bu isteğe karşılık verir. Sunucu ve kullanıcı arasındaki bu iletişim HTTP Protokolü (Hyper Text Transfer Protocol) ile sağlanır. Sunucuya gönderilen istekler, HTTP Protokolü sayesinde tarayıcıya iletilir. Bu sayede çağrılan web sayfası görüntülenir.

Response Nesnesi

Sunucunun kullanıcıya cevap vermesini sağlayan nesnedir. Nesneye ilişkin metotlar kullanılarak gerekli cevaplar üretilir. Bu metodlar;

Response.Write Metodu

Sunucu tarafından sayfaya bir şeyler yazdırılacaksa Response.Write metodu kullanılır. Yazdırılan ifade bir mesaj ya da değişken olabilir. Eğer tırnak içerisine yazılıyorsa ifade değişmeden sayfaya yazdırılır. 

protected void Page_Load(object sender, EventArgs e)
{
//Response.Write("Merhaba <br>");
//int mesaj;
// mesaj = 22;
// Response.Write(mesaj + "<br>Günaydın");
for (int k =1; k < 7; k++)
{
Response.Write("<font size= " + k + "> AFYON KOCATEPE ÜNİVERSİTESİ <br></font>");
}
}

Response.Redirect Metodu

Web sayfamızdan herhangi bir sayfadan başka bir sayfaya yönlendirmek için kullanılır.

 

protected void Page_Load(object sender, EventArgs e)
{

//Response.Redirect("Default2.aspx");// bu komutla Default2.aspx sayfasına gidilir.
Response.Redirect("http://www.aku.edu.tr");// bu komutla web adresine gidilir.
}

Response.Buffer Metodu

Web Browser’a gönderdiğimiz çıktıları kontrol amaçlı kullanılmaktadır.

Browser’a çıktılar 2 şekilde gönderilmektedir.

1. Sayfanın bütün script ve kodları çalıştıralana kadar Buffer(Tampon) bir hafızada saklanır ve hepsi tamamlandığında browser’a gönderilir. Asp.Net’in çalışma biçimi budur. Sayfada hiçbir şey belirtilmemişse Response.Buffer=true kabul edilir.

2. Tamponlama yapılmadan doğrudan browser’a gönderme biçimidir. Bu durumda Response.Buffer=false ifadesi bildirilir.

Response nesnesinin tampon hafızayı yöneten 3 adet metodu daha vardır.

1. Flush metodu; o zamana kadar tampon hafızada biriken her şeyi hemen browser’a gönderir.

2. Clear metodu; tampon hafızada biriken her şeyi siler ve tampon hafıza boş kalır. Bu bildirimden önce hiçbir şey (daha önce flush metodu ile gönderilmemişse) istemciye gönderilmez. Sitemizde alışveriş yapan bir kullanıcı, vazgeçtiği zaman verdiği bütün bilgileri silmek en iyisidir. O zamanda bu özellik yardımımıza koşacaktır.

3. End metodu; response nesnesinin Buffer’a veri aktarım sürecini sonlandırır. O zamana kadar tamponda birikmiş olanlar istemciye gönderilir.

protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Şu an görülen yazı, Flush metodu ile Browser'a hemen gönderilecek.<br>");
Response.Flush();
Response.Write("Bu yazı hiçbir zaman Browser'da gözükmeyecek, çünkü devam eden response.clear satırı ile tampon hafızadan silinecek.<br> ");
Response.Clear();
Response.Write("Bu yazı tampon hafıza temizlendikten sonra, tampon hafızada tutulmuş oradan da browser'a gönderilmiştir.<br>");
Response.End();
Response.Write("Bu yazı da hiçbir zaman gözükmeyecek, çünkü response nesnesi, end metodu ile browser'a her türlü gönderimi durdurmuştur.<br>");
}}

Cuma, 23 Mart 2012 08:17

Asp.Net Validation Kontrolleri

Web form üzerindeki kontrollere istediğimiz bilgilerin, istediğimiz format ile girilmesine Validating denir. Kullanıcıların hatasız ve eksiksiz olarak formların doldurulmasında önemli rol oynamaktadır. Ayrıca bu kontrollerin çalışması için Internet Explorer 4 ve üstü olması gerekmektedir.

REQUIREDFIELDVALIDATOR

Web formunda kullanıcı adı, şifre gibi kullanıcı tarafından mutlaka doldurulması gereken alanların boş geçilip geçilmediğini denetlemek için kullanılır. Her Form nesnesi için ayrı ayrı RequiredFieldValidator eklemek gerekmektedir.

 Display: Üç seçenek içermektedir: Static, Dynamic, None Bu seçenekleri kullanarak kontrolün hata mesajını gösterip veya saklayabilirsiniz.

 -Static: Mesajın gösterilmesi için gerekli alan başlangıçta ayrılır.

 -Dynamic : Hata mesajının gösterilmesi için yer ayrılmaz ve gerektiğinde sayfanın diğer içeriği ile yer değiştirilerek gösterilir.

 -None: ValidationSummary kullanılmadıkça hata mesajı gösterilmez.

 ErrorMessage : Konrol denetimi sonrasında eğer belirlenen web kontrolüne bir değer girilmez ise kullanıcıya verilecek uyarı mesajını bu alanda belirlemekteyiz.

 Text : ErrorMessage ile aynı işlemi yapmaktadır. Konrol denetimi sonrasında eğer belirlenen web kontrolüne bir değer girilmez ise kullanıcıya verilecek uyarı mesajını bu alanda belirlemekteyiz.

 ControlToValidate: Bu seçenek ise hangi web kontrolü üzerinde denetleme yapacağını belirtmektedir Bu örneğimizde bizler TextBox1 in boş geçilip geçilmediğinin kontrol edeceğiz.

 InitialValue : Bu alan ise geçerlilik denetiminin textbox gibi değer girilen bir web kontrolü değil de dropdownlist gibi değer seçilmesi gereken bir web kontrolü ise herhangi bir değer seçilip seçilmediğinin kontrolünün yapılacağı alandır.

 requiredfieldvalidator

ControlToValidate kısmından hangi kontrolü validate edeceğini seçiyoruz. Ve text kısmına vereceğimiz uyarı mesajını yazıyoruz. Dropdownlistin value değerini ise Reguiredfieldvalidator2’nin InitialValue kısmına yazdığımızda ise bir değer seçilip seçilmediğini kontrol ediyoruz.  

  

RANGEVALIDATOR

Bu Kontrol bir Form nesnesinin belirlenen aralık içerisinde olup olmadığını denetlemek için kullanılır. Properties’den MaximumValue ve MinumumValue olarak değerler verilir.

  • MaximumValue: Form Nesnesine verilebilecek maksimum değeri göstermektedir. Bu değerden yüksek bir sayı girildiğinde RangeValidator kontrolü aktif hale gelir.
  • MinumumValue: Bu seçenek ise Form nesnesine verilebilecek minimum değeri göstermektedir. Bu değerden düşük bir sayı girildiğinde RangeValidator kontrolü aktif hale gelir.
  • Type: Bu seçenek ise Form nesnesi içerisindeki verinin hangi tipte algılanacağını belirtmektedir. Bu değerler Double, String, İnteger, Date, Currency tipinde olabilir.

 

 

ControlToValidate kısmından hangi kontrolü validate edeceğini seçiyoruz. RangeValıdator’lerin text kısmına vereceğimiz uyarı mesajını yazıyoruz. MaximumValue ve MinimumValue kısmına değerler giriyoruz. Type kısmından veri türünü seçiyoruz.

 

REGULAREXPRESSIONVALIDATOR

 

Bu Kontrol veri girişinde belli biçimler kullanılmasını sağlar. Mesela e-mail adresinde kullanılan @ ve nokta işaretinin kontrolünü yapmak bu validator’ün görevidir. ValidationExpression kısmından uygulanacak format seçilir. Burada e-mail, web site adresi, telefon numarası ve posta kodu gibi hazır kalıplar mevcuttur.

Bizim tanımlayabileceğimiz özel formatlar için Custom seçilir. Eğer istenirse bu liste dışından istediğimiz formatı biz belirleyebiliriz. Örneğin T.C. kimlik numarası bildiğiniz gibi 11 rakamdan oluşur. Bunun için \d{11} yazarak bu TextBox’a 11 rakam girmeye zorlayabiliriz. Aynı işlemi biraz daha uzun yolla “|” karakterini (OR) kullanarak da

(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9) yapabiliriz.

 

ControlToValidate kısmından hangi kontrolü validate edeceğini seçiyoruz. RegularExpressionValidator’lerin text kısmına vereceğimiz uyarı mesajını yazıyoruz.

Validationexpression kısmına e mail kontrolü yapacağımız için e-mail formatını seçiyoruz. Ya da \w+\w*\@\w+\w+\w*\.(com|edu|org|gov|com.tr|org.tr|net|net.tr) yazıyoruz.

TC Kimlik No için ValidationExpression kısmına \d{11} yazıyoruz.

Password’ün en az 4 ile en fazla 8 karakter olması için ValidationExpression kısmına \w{4,8} yazıyoruz.

  

COMPAREVALIDATOR

Değer kıyaslaması için kullanılan kontroldür. Input kontrolü içindeki değeri kıyaslar. ControltoCompare kısmından hangi input kontrolü ile kıyaslayacağı seçilir ve iki değerin aynı olmaması durumunda hata mesajı çıkar.

ControlToValidate özelliği ile hangi kontrolün geçerlilik testi yapılacağını belirleriz.
ErrorMessage özelliği ile geçerlilik ihlal edildiğinde sayfada görünmesini istediğimiz mesaj yazılır.
ValueToCompare özelliği ile bizim girdiğimiz bir değere göre karşılaştırma yapılır.
ControlToCompare özelliği ile sayfadaki aynı veri türünde bilgi içeren başka bir kontrol elemanı ile karşılaştırma yapılır.
Type özelliği ile geçerlilik testi yapılacak kontrolün veri türü belirlenir.
Operatör özelliği ile karşılaştırma operatörü seçilir.



CompareValidator1 özellikleri

 

 CompareValidator2 özellikleri

 

  

  

  

 CUSTOMVALIDATOR

Kendimize özel validator oluşturmak için kullanılır. True ve False değerlerini args.IsValid özelliği ile kontrol ederiz.



CustomValidator üzerine çift tıklayıp karşımıza gelen CustomValidator1_ServerValidate event’ına aşağıdaki kod yazılır.


protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)   

  {       

  int i = Convert.ToInt32(args.Value);     

    if (i % 2 == 0)        

{  

args.IsValid = true;

 }       

  else

 {

args.IsValid = false;

}  


Bu kodlarda kontrole girdiğimiz değeri, args.Value değeri yakalıyor. Bu değeri i değişkenine atıyoruz. Hata mesajını çıkmasını istediğimiz durumda args.IsValid değerini False, eğer bilgi doğru ise args.IsValid değerini True yapıyoruz. Textbox1’e tek rakam girildiğinde karşımıza hata mesajı çıkacak, çift sayı girdiğinde bu mesaj ile karşılaşmayacağız.
 

VALIDATIONSUMMARY


Sayfanın doğru olup olmadığını tespit eden özellik Page.IsValid’dir. Eğer bu değer False olarak dönerse, tüm validation hatalarını ValidationSummary havuzuna yollar. ValidationSummary tüm hataların listesini verir. Kontrollerin ErrorMessage kısmına yazılan hata mesajları, bir liste şeklinde görüntülenir. Bu listeye başlık koymak istersek HeaderText kısmına gereken başlık bilgisi yazmak gerekir. ValidationSummary kullanılan sayfalarda, genellikle kontrollerin Text özelliğine * işareti konulur.

RequiredFieldValidator’ün özellik penceresi;

RangeValidator’ün özellik penceresi;

ValidationSummary kontrolünün HeaderText kısmına “Aşağıdaki hataları düzeltin” yazalım. Button1_Click event’ına aşağıdaki kodu yazalım;

protected void Button1_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
Label1.Text = "Bilgiler Doğru";
}
}





RequiredFieldValidator’ün özellik penceresi;


RangeValidator’ün özellik penceresi;

ValidationSummary kontrolünün HeaderText kısmına “Aşağıdaki hataları düzeltin” yazalım. Button1_Click event’ına aşağıdaki kodu yazalım;


protected void Button1_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
Label1.Text = "Bilgiler Doğru";
}
}

 




Cuma, 23 Mart 2012 08:06

Asp.Net Panel

Sayfalar üzerinde istenilen şekilde bölmeler oluşturmak için kullanılır. Panel içine istenilen kontrol eklenebileceği gibi direkt yazı da yazılabilir. Panel 1 kontrolünün ScrollBars özelliğinden Vertical seçimini yaparak aşağıdaki görüntü elde edilir.

 

Cuma, 23 Mart 2012 08:05

Asp.Net Placeholder

Dinamik olarak sayfa üzerine kontroller eklemeyi sağlamak için kullanılan kontroldür. İlk olarak sayfa yüklendiğinde bir adet textbox ve iki adet textbox ekleyelim.

protected void Page_Load(object sender, EventArgs e)
{
TextBox t = new TextBox();
t.Text = "Metni buraya giriniz";
PlaceHolder1.Controls.Add(t);&nbsp;
Button b = new Button();
b.Text = "Giriş";
PlaceHolder1.Controls.Add(b);
Button c = new Button();
c.Text = "İptal";
PlaceHolder1.Controls.Add(c);&nbsp;
}

 


Cuma, 23 Mart 2012 08:04

Asp.Net Multiview/View

İçerisinde birden fazla view kontrolü barındıran ve bu kontrollerden sadece bir tanesini ekrana gösteren kontroldür. Aktif olan view bir buton veya bir kontrolün postpack’i ile değiştirilebilir. Bunun için kontrolün ActiveViewIndex değerine view’in sıra numarası (0’dan başlanarak ) verilir.

 

 

protected void Page_Load(object sender, EventArgs e)
{

if (DropDownList1.SelectedItem.ToString() == "Elma")
{
MultiView1.ActiveViewIndex = 0;
}
else if (DropDownList1.SelectedItem.ToString() == "Armut")
{
MultiView1.ActiveViewIndex = 1;
}
else if (DropDownList1.SelectedItem.ToString() == "Kiraz")
{
MultiView1.ActiveViewIndex = 2;
}
else
{
MultiView1.ActiveViewIndex = -1;//olduğunda multiview kontrolü görünmez
}

}

Cuma, 23 Mart 2012 08:02

Asp.Net Bulletedlist

BulletedList kontrolü, verileri alt alta sıralayarak baş taraflarına bir ikon koyar. Bu ikon istersek seçtiğimiz bir resim veya varsayılan ikonları olabilir.

DisplayMode özelliğinde Text, LinkButton ve Hyperlink şeklinde üç özellik bulunmaktadır . Text , normal yazılar için , LinkButton Postback (Postbacksayfanızın sunucuya gönderilip geri gelmesi olarak açıklanabilir.) yapılacaksa kullanılır. Hyperlink özelliği ile de Value kısmında belirtilen URL adresine yönlendirme yapılır.

Değer eklemek için propertiesden items kısmına tıklıyoruz. Add butonuna tıklayarak değerleri ekliyoruz. Text kısmından yazmak istediğimiz şeyi yazıyoruz. Simgeleri yine propertiesden BulletStyle’dan değiştirebiliriz.

Özel bir resim eklemek için BulletStyle dan CustomImage seçeneğini seçip BulletImageUrl’ye tıklayarak isteğimiz resmi ekleyebiliriz.

Öncelikle Bulletedlist’in özeliklerinden DisplayMode kısmından LinkButton seçeneğini seçiyoruz. Bulletedlist’in üzerine çift tıklayarak BulletedList1_Click olayını oluşturuyoruz.

 

protected void BulletedList1_Click(object sender, BulletedListEventArgs e)
{
int a = e.Index
Label1.Text = "Seçtiğiniz kişinin telefon numarası:<br>" + BulletedList1.Items[a].Value.ToString();
}

 

BulletedList'in olay argümanı olan e ile seçiyoruz. e.index integer bir değer döndürür. Bulletedlist'in index değerini alıyoruz.Dönen bu integer değerini ise BulletedList kontrolünün Items özelliğinde kullanıyoruz. Böylece hangi satırın seçildiğini anlıyoruz. Bu örnekte seçilen satırın value değerini Label kontrolüne yazdırdık.