ASP.NET ÇALIŞMA NOTLARI



Benzer belgeler
PROGRAMLAMA DERSİ 1. İNTERNET

ASP.NET TEMELLERİ. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

WEB FORM ELEMANLARI. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

Kitap Ekle linki tıklandığında, admin.aspx sayfamızın görüntüsü aşağıdaki şekilde olacaktır.

Response : Sunucunun istemciye veri yollamasını

WEB FORMLARI. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

İNTERNET TABANLI PROGRAMLAMA- 9.ders BİLGİLERİN GRIDVIEW İÇERİSİNDE EKLENMESİ, DÜZENLENMESİ VE SİLİNMESİ

İNTERNET TABANLI PROGRAMLAMA- 10.ders GRIDVIEW İÇERİSİNDE YENİ KAYIT EKLEME, FOTOGRAF LİSTELEME, SIRALAMA YAPMA VE DROPDOWN EKLEME

İNTERNET TABANLI PROGRAMLAMA- 8.ders VERİTABANI İLE İLGİLİ BİLGİLERİ GÖRÜNTÜLEME, KAYDETME, GÜNCELLEME VE SİLME

Önce Access açıp,masaüstü ne, vt.mdb adlı veri tabanı dosyasını oluşturuyoruz. Kayıt türünü seçiyoruz

Şekil 2.1. Bu bölümde ASP.Net platformumuzu açtığımızda Toolbox penceresindeki Standart bölümündeki kontrollerden bahsedeceğiz.(şekil 2.2) Şekil 2.

SINIF İÇİ UYGULAMA KODLARI

Resimlerin üstüne yazı yazacağız. resimyukle.aspx sayfası oluşturuyoruz.

ASP.NET ile Bir Web Sitesi Oluşturma

BİLGİLERİ GÖRÜNTÜLEME, KAYDETME, GÜNCELLEME VE SİLME İŞLEMLERİNİN BİRLİKTE ANLATIMI

Çözüm :RadioButtonList1 kontrolunuekliyoruz.enableautopostback iaktifleştiriyoruz..

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 2 Asp.NET Sunucu Kontrolleri

MASTER PAGE SAYFASI KULLANIMI

İNTERNET TABANLI PROGRAMLAMA- 11.ders FORM UYGULAMASI (DROPDOWN BİLGİ YÜKLEME, VALIDATION KONTROLLERI, PAREMETRELİ KAYIT YAPMA)

NOT: VERİTABANINDAKİ TABLOLARI OLUŞTURMAYI DA UNUTMAYACAĞIZ.

GridView ve DetailsView kullanarak kayıt düzenlemek

User Control : Standart bir kullanıcı arabirimi oluşturarak; bir uygulama içinde birden fazla. Siteye User Control Eklemek : 22 Mart 2012 / Perşembe

ASP.NET 1. DURUM YÖNETİMİ. BLM 318 e-ticaret ve Uyg. Durum Yönetimi Nedir? Durum Yönetimi: Karșılaștırma İÇERİK. Sunucu-taraflı Durum Yönetimi

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

Android Ders Notları

Yeni Web Sitesi Oluşturma: Visual Studio 2012 açılır. File>New>Web Site>C#-Asp Empty Site

Masa üstünde vt34.mdb dosyası var, onu projemize eklemek için, App_Data ya sağ tıkla Add Existing Item vt34.mdb adlı dosyayı seç Add

ASP.NET SAYFA DETAYLARI. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 9 Tema Kullanımı

REQUEST QUERY STRING. Sayfalar: default.aspx ve sorgu_sayfasi.aspx. default.aspx sayfası: sorgu_sayfasi.aspx sayfası:

Programlama Yazılımı ile Web Sitesi Oluşturma

GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLS. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

HESAP MAKİNASI YAPIMI

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

VERİTABANINA BİLGİ KAYDEME, DÜZENLEME, LİSTELEME İŞLEMLERİ

24 Kasım 2011 / Perşembe

VeriTabanı Uygulamaları

İNTERNET TABANLI PROGRAMLAMA

1 Aralık 2011 / Perşembe

SAYFALAR ARASI LİNK VERME VE BİLGİ TAŞIMA YÖNTEMLERİ

ASP.NET Web Kontrolleri

ASP.NET ÇALIŞMA NOTLARI

ASP.NET Web Formları ile Çalımak. Microsoft ASP.NET Web Formları ile Çalımak

HSancak Nesne Tabanlı Programlama I Ders Notları

Bu gün dersimizde değişik web kontrollerinin kullanımını gösteren birkaç web sitesi hazırlayacağız. Önce Visual Studio 2005 i açalım.

Görsel Programlama (Visual Programming) 2.Hafta

Görsel Programlama (Visual Programming) 2.Hafta

Örnek : TextBox1,RangeValidator,Button,Label girelim aralığında değer girilmesini istiyoruz. Label1.Text=TextBox1.Text ;

2.Eclipse açıldıktan sonra Workspace alanı seçilmesi gerekir. Workspace alanı projelerinizin fiziksel olarak bulunduğu kısımdır.

Sağ Tıkla. 5 Ocak 2012 / Perşembe. Yeni bir site açıyoruz. File New Web Site Browse yeni klasör ocak5persembe OK

BİLGİLERİ GRIDVIEW DE GÖRÜNTÜLEME VE DÜZENLEME


Dinamik Kodlama. [X] [X] Yeni Fonksiyon

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1 1. FORMLAR

ASP.NET M U S T A F A K I L I Ç M C S E, M C D B A

Görsel Programlama (Visual Programming)

HSancak Nesne Tabanlı Programlama I Ders Notları

A- VERİTABANI BAĞLANTISINI HAZIR NESNE KULLANARAK YAPMA

Burak Kıymaz JAVA FX

Öğr. Gör. Serkan AKSU 1

ADO.NET VERİTABANINA BAĞLANTI. Bir web formu üzerinden veritabanına bağlantımızı anlatacağım. UYGULAMA 1

Google Search API ile ajax arama

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

WEB TASARIM. CSS, IFRAME, TEMPLATE, SLICE, INCLUDE(php komutu) Tarık ÖZEL

8. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

WEB KULLANICI KONTROLLERİ ve ANASAYFA KULLANMA(Master Page)

yeni_uye_kayit.ascx UserControl sayfamızda, kaydedilmek istenen üye eğer daha önce veritabanımızda kayıtlı ise bunu buldurup kullanıcıyı uyaralım;

JavaScript Örnekleri PDF

Durum Yönetimi. Olan sayfalar ekleyelim. BasitSayac.aspx

Ç NDEK LER. 3 ASP.NET Sayfa Detaylar 29 ViewState 34 Postback Form 35 Web Form Elemanlar (Kontrolleri) 35

YZM 2105 Nesneye Yönelik Programlama

Yeni site açıp, masa üstündeki vt.mdb dosyasını sitemize ekliyoruz ve a bağlanıp 1 Mart tarihli sayfayı açıyoruz

4. Bölüm Programlamaya Giriş

Kullanım Kılavuzu Milli Eğitim Bakanlığı 2010

ASP.NET DERS NOTLARI

Örnek Uygulama: CheckedListBox da seçili olanları listbox nesnesine ekleyen program.

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) BİLİŞİM TEKNOLOJİLERİ

Flash ile Etkileşimli Öğretim Materyali Hazırlama Semineri

MOBILEPAX SOAP PRODUCT API KULLANIM ŞEKLİ

Karabük Üniversitesi, Mühendislik Fakültesi... AJAX KULLANIMI

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 3 Asp.NET Doğrulama Kontrolleri

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

12 Ocak 2012 / Perşembe

İNTERNET TABANLI PROGRAMLAMA- 3.ders

LINQ Language Integrated Query Dille Bütünleştirilmiş Sorgu Bir Veri Tabanı Tablosundan Veri Gösterme

Visual C# - Görsel Programlama II Örnek Sorular ve Cevaplar

İnternet,artık hayatımızın önemli bir parçası. Her gün interneti programlar aracılığı ile ya da internet siteleri aracılığı ile kullanıyoruz.

12 TBT / WEB TASARIM ve PROGRAMLAMA ( Not 3 )

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Kabuk Programlama (Bash)

2- Kontrol Sil En Öne Getir En Arkaya Gönder Resim Özellikler: Genel Özellikler...

Proje 1. Arayüz Tasarımı

MOBILEPAX XML PRODUCT API KULLANIM ŞEKLİ

Java da İstemci Tarafı Uygulamalar

Columns : * Next Text Query veri tabanındaki urunler tablosu görülüyor. Finish, çalıştırınca direk veri tabanındaki bilgileri alıyor.

Web Tasarımının Temelleri

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

DIV KAVRAMI <style> position: absolute

1) İlk olarak oluşturduğumuz filtre adı yazılır. (örneğin tatil mesajı, taşı vb gibi.) 2) Sonra filtre için kural belirlenir.

Transkript:

ASP.NET ÇALIŞMA NOTLARI İnternet sunucu istemci modeline göre çalışır. Fiziksel olarak bu sistem genelde isteği yapan bilgisayar(client) ve bu isteği karşılayan özel bir bilgisayar(server) şeklinde işler. İSTEMCİ TARAFLI (CLİENT-SİDE) SCRİPTİNG Web deki anlamıyla script; konusu web(sayfası) olan program veya programcıklarıdır. Script ler sayesinde bir web sayfası çok daha yetenekli ve işlevsel olabilir. İstemci taraflı scriptler barındıran bir sayfanın işleyişinde sunucunu hiçbir fonksiyonu yoktur. SUNUCU TARAFLI (SERVER-SİDE) SCRİPTİNG Sunucu taraflı sayfa veya scripting, istemci taraflı scripting in karşıtıdır. Burada script ler özel belirteçlerle, sunucu taraflı olduğunu bildirir ve bunlar sunucu tarafından işlenerek, çıktıları yine HTML formatında, istemciye gönderilir. Kullanıcılar,sayfa vasıtasıyla ile gelen veriler sunucuda işlenerek saklanabilir. Sayfa yeniden düzenlenebilir ve bunun gibi şeyler yapılabilir. ASP.NET VE OLAY YÖNLENDİRMELİ MODEL (EVENT DRİVEN) İstek-cevap modeline ilişkin vurgulanması gereken son nokta bağlantısızlıktır. Bunun anlamı istemci ile sunucu arasında daimi bir bağlantı olmamasıdır. Bağlantısızlık web yazılım geliştiricilerinin aşması gereken en önemli problemlerden bir tanesidir. Programcılıkta olay yönlendirme herhangi bir rutinin, programın veya programcığın çalışmasını başlatmak için gereken eylemdir. Bir butona basmak, bir kutucuğu işaretlemek, bir seçeneği tıklamak; kısaca bir eylem, olayı oluşturabilir. Olay yönlendirme mantığını internet ortamında tesis etmek zordur. Çünkü ortada istemci ve sunucu olmak üzere iki ayak vardır ve bunlar da sürekli bağlantı halindedir. Asp.net bu zorluğu aşmıştır. Asp.net bağlantısızlık problemini aşmak için, istemci taraflı scriptleri ve asp.net özgü yeni teknikler kullanır. NET NEDİR?.Net Framework, Microsoft tarafından geliştirilen, açık internet protokolleri ve standartları üzerine kurulmuş komple bir uygulama geliştirme platformudur. Zengin kütüphanesi ile sınırları ortadan kaldıran web servisidir.

Bu dillerde yazılan programların çalışma mantığı ise; C# yazılan kodu MSIL Assembly'e, Assembly'i de CLR'e çevrilerek çalıştırılabilir bir makina koduna dönüşür. XML Xml.net in odak noktasıdır. Xml günümüzde veri depolaması, yönetimi ve kullanımın temel standadı olmuştur. Platform bağımsız yapısı, kolay geliştirilebilmesi ve basit mantığıyla, endüstrinin üzerinde uzlaştığı bir dildir. COMMON LANGUAGE RUTİME(CLR) CLR (Common Language Runtime),.NET altyapısında programların çalışmasını denetleyen, programın işletim sistemiyle haberleşmesini sağlayan birimdir. Yazılan programın her işletim sisteminde (Windows, Linux, MacOS) çalışmasını sağlamak görevi CLR'e düşer. En basit ifadeyle,uygulamalar hangi dille geliştirilirse geliştirilsin, hepsi CLR sayesinde çalışır. ASP.NET TANIMI ASP.NET dilediğimiz programlama dilini kullanarak, olay yönlendirmeli web uygulamaları geliştirmemizi sağlayan.net platformunun web uygulamaları geliştirme teknolojisidir. Asp 'den farklı bir ortamda yazılan kodların IIS ile entegre çalışan.net Framework bu çalışma ortamının en büyük faydası uyumluluk ve dayanıklılıktır. ASP.NET VERSİYONLARI ASP.NET 1.0: ilk versiyonudur versiyon numarasından da anlayacağınız gibi en geniş ve kapsamlı versiyonudur.asp.net temel yapısıda bu versiyon ile atılmıştır. ASP.NET 1.1 : Bu versiyon ise hemen arkasından çıkmış Şahsi incelememe göre arkadaşlar sadece bir sonraki sürüm olsun diye çıkarılmıştır. İncelediğiniz zamanda farkına varırsınız sadece performans ayarlamaları ve bug düzeltimleri yapılmıştır başkada bir yeniliği yoktur. ASP.NET 2.0 : İki sürümün arkasında gelen bu sürüm pek çok özellik katmıştır bunlardan en belirgin olan özelikleri söylemek gerekirse code behind deki yeniliktir eskiden Code behind dosyalarla çalışırken her bir kod değişikliğinde derleme ihtiyacı gerekirken, bu versiyon ile yapılan değişiklikler anında etkin olabiliyor benim en sevdiğim yenilikden birisi uzun kod yazımlarında gerçekten çok zaman kazandırıyor diye biliriz. ASP.NET 3.5 : Şu anki en güncel sürümüdür.bu versiyon ile arkadaşlar artık tamamıyla AJAX,SILVERLIGHT ve LINQ teknolojileri kullanmamızı sağlamaktadır.

1.UYGULAMA UYGULAMALAR VE AÇIKLAMALARI <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Web_basit_uygulama1.WebForm1" %> <script runat ="server"> private void Page_load(object sender, EventArgs e) Mesaj.Text = "Merhaba! bu sayfayı görebiliyorsanız ASP.NET ile çalışmaya hazırsınızdır..."; </script> <body text="label"> <asp:label ID="Mesaj" runat="server"></asp:label> Asp.net içerisinde yordamları iki türlü yazabilmekteyiz. Bunlar ya aspx dosyamız içinde script runat ="server"></script> bloğu içerisine yazabiliyoruz ya da aspx.cs dosyası içine yordamlarımızı yazabiliyoruz Bu örneğimiz script bloğumuzun içerisine Page_load yordamı altında Mesaj.Text = "Merhaba! bu sayfayı görebiliyorsanız ASP.NET ile çalışmaya hazırsınızdır..."; yazarak programımızı çalıştırıyoruz Burada ki mesaj.text kodumuzda. Mesaj programamıza eklemiş olduğumuz labelimizin ID si dir. <script runat ="server"> kodundaıki runat= server tanımlaması ise server(sunucu) tabanlı çalıştığımızı göstermektedir. Bu kod parçasının çalışması ise derlendiği zaman label aracılığıyla mesajımızı sayfamıza yazdırıyoruz. VİEWSTATE Asp.net ile gelen yeni bir kavram olan viewstate bir web formundaki elemanların mevcut durumunu saklar. Olayların gerçekleşip gerçekleşmediğini kontrol eder. Web geliştirme ortamı için çok büyük bir yenilik ve kolaylıktır. Viewstate değerleri kesinlikle ziyaretçinin (client) sayfasında saklanır ve sunucu da hiçbir yer kaplamaz. SAYFALARA NAMESPACE EKLEMEK

Namespace; üzerinde çalışacak uygulama ve programların alt yapısını oluşturan classların (sınıfların) toplamından oluşur. Aynı isimlendirme altında bir çok class, o isimle uzayın(ortamın) oluşturulmasını sağlar. <%@ Import Namespace="namespace'nin ismi %> Bir namespace i import etmemiz için aşağıdaki şekilde bir bildirimi sayfanın başında kullanmalıyız. 2.UYGULAMA İF ELSE DEYİMİ Bu uygulamamızda string olarak bir isim tanımlaması yapıyoruz. Daha sonra if else deyimi kullanarak yazılan isimleri ekrana çıktı olarak aldıyoruz. Eğer tanımladığımız isimlerin dışında farklı bir isim giriliyorsa da ismin egemen, gizem, gökhan değil" şeklinde bir mesaj karşımıza çıkıyor. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="İf_else.aspx.cs" Inherits="Web_İf_else_deyimi.İf_else" %> <script runat="server"> private void Page_Load(object sender, EventArgs e) string isim = "Ezgi"; if (isim == "Egemen") Response.Write("ismin egemen"); else if (isim == " gizem") Response.Write("ismin gizem"); else if ( isim == "gökhan") Response.Write("ismin gökhan"); else Response.Write("ismin egemen, gizem, gökhan değil"); </script> 3.UYGULAMA SAYFA DETAYLARINI ANLATAN UYGULAMA

Bu uygulamamızda ilk olarak design kısmında bir label, bir textbox ve bir buton ekliyoruz. Daha sonra eklediğimiz elemanların ID lerin sırasıyla label ID : mesaj, textbox ID : isim_kutusu ve buton ID mizi de buton olarak tanımlıyoruz. Daha sonra script bloğumuzun içerisine private void isim_girdisi(object sender, EventArgs e) mesaj.text = "merhaba" + isim_kutusu.text + "...asp.net e hosgeldiniz <br>" + DateTime.Now.ToString(); // sayfada yazdırılan mesajın içeriği Yordamını tanımlıyoruz. Bu yordamda buton a basıldığı an textbox a hangi metni girdiysek "...asp.net e hosgeldiniz ifadesiyle birleştirirek label a yazdırıyoruz. WEB FORMLARI Html formları : HTML tagları sayesinde, tamamıyla istemcinin bilgisayarı vasıtasyla oluşturulurlar. Web formları : tamamıyla sunucuda oluşurlar. 4. UYGULAMA HTML VE WEB FORM Bu uygulamamızda 2 adet buton ve 1 adet labelimiz var. Butonlar tamamıyla aynı görünen ve aynı işi yapan butonlardır. Aşağıdaki kod da göreceğimiz üzere mesaj yazdır butonu web form olarak mesaj sil butonu ise html form elemanı olarak yaratıldı. Yani ilk buton web kontrolleri tarafından kontrol edilirken ikinci buton runat= server ifadesiyle bir sunucu kontrolüne dönüşüyor. Kısaca anlatmak istersem 1. Buton toolbox tan web form olarak ekliyoruz fakat 2.buton input type = buton kodu ile sayfa çalıştığı anda yaratılıyor. Yani biz toolboxtan eklemiyoruz webte kendi kendine oluşuyor. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Form1.aspx.cs" Inherits="Web_Buton_Farkı.Form1" %> <script runat="server"> private void yazdir(object sender, EventArgs e) // buton tıklandığında yapılması istenilen işlem! mesaj.text = "buton'a tıkladınız"; private void sil(object sender, EventArgs e) // butona tıklandığında yapılması istenilen işlem! mesaj.text = " "; </script>

/> <asp:button ID="buton_1" runat="server" Text="mesaj yazdır" OnClick="yazdir" <p /> <input type="button" value="mesajı sil" onserverclick="sil" runat="server" /> <p /> <asp:label ID="mesaj" runat="server" Text="Label"></asp:Label> SUNUCU KONTROLLERİ VE OLAYLAR (EVENTS) Sunucu kontrollerinde olay bildirimi Onclick gibi standart ifadelere dayanır ve karşılığında olay gerçekleştiği zaman işletilmesi gereken yordamın referansı verilir. Böylece olaya bağlı işlemler gerçekleştirilir. Her kontrolün kendine özgü standart olay bildirimleri vardır. 5.UYGULAMA OLAY METHOD UYGULAMASI Bu örneğimizde sayfamızda 3 adet buton olucak ve yazdir methodumuz olucak ve bu 3 buton dan hangisi bu methodu çağırdıysa ona ait metin özelliği sayfada gözükücek. Yani mesaj yazdır buton a tıkladığımızda mesaj yazdır yazacaktır. Yazdır butona tıklarsak ta ekran da yazdir yazacaktır. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="olaymetot.aspx.cs" Inherits="Web_olay_metot.olaymetot" %> <script runat="server"> void yazdir(object nesne, EventArgs e) Response.Write("butona tıkladın <br>" + ((Button)nesne).Text);

</script> <body style="height: 108px; width: 929px"> <asp:button ID="Btn_1" runat="server" Text="mesaj yazdır" OnClick="yazdir" /> <asp:button ID="Btn_2" runat="server" Text="yazdır" OnClick="yazdir" /> <asp:button ID="Btn_3" runat="server" Text="mesaj" OnClick="yazdir" /> WEB FORMLARININ POSTALANMASI Sunucuya 2 şekilde veri postalanır. Hemen veya biriktirilerek. Biriktirilerek : formdaki elemanlara ait bütün veriler, tek bir seferde bir buton sayesinde sunucuya gönderilir. Hemen : form elemanı ile işimiz biter bitmez hemen sunucuya postalanır. yani buton a gerek yok. Hemen postalama yapma istiyorsak kontrol bildirimimize AutoPostBack = true ifadesi kullanmalıyız 6.UYGULAMA POST İŞLEMİ Uygulamamızda 3 adet textbox, 3 adet label ve 1 adet buton olucak. Textboxlara veriler girilecek ve bunlar sayfada labellara yazdırılacak. Bu örneğimizde isim ve soyisim textboxlarımızda autopostbacak olduğu için veri girildiği gibi işlem yapılacak. Mesleğin yazdırılması için ise buton a tıklanması gerekiyor. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Web_Posta_olayı.WebForm1" %> <script runat="server"> void yazdir(object sender, EventArgs e) isim_mesaj.text = isim.text; soy_isim_mesaj.text = soy_isim.text; meslek_mesaj.text = meslek.text; </script>

<body style="height: 411px; width: 383px"> <asp:label ID="isim_mesaj" runat="server"></asp:label> İsim: <asp:textbox ID="isim" runat="server" OnTextChanged="yazdir"></asp:TextBox> <asp:label ID="soy_isim_mesaj" runat="server"></asp:label> Soy isim: <asp:textbox ID="soy_isim" runat="server" OnTextChanged ="yazdir" AutoPostBack="true"> </asp:textbox> <asp:label ID="meslek_mesaj" runat="server"></asp:label> Meslek: <asp:textbox ID="meslek" runat="server" OnTextChanged="yazdir"></asp:TextBox> <p /> <asp:button ID="Button1" runat="server" OnClick="yazdir" Height="45px" Text="Gönder" Width="83px" /> <p /> 7. UYGULAMA ISPOSTBACK ÖZELLİĞİ Sayfanın geri postalanma özelliğidir. Sayfanın ilk yüklendiği durum ile sonrasında olan işlemleri belirlemede kullanılır. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Web_Is_post_back.WebForm1" %> <script runat="server"> private void Page_Load(object sender, EventArgs e) // sayfa ilk kez yüklendiğimiz karşımıza çıkacak olan yordam. if (!Page.IsPostBack)

karsilama.text = "merhaba bu sayfa ilk kez yüklendiğinde ve sunucudan bir geridöndürüm(postback) olmadığından bu yazı görülmektedir...<br>"; private void yazdir(object sender, EventArgs e) // bir butona tıkladığımızda sunucuya bir postalama işlemi gerçekleştirdik. if (Page.IsPostBack) karsilama.text="sunucudan geri döndürüm(post back) yapıldığından, biraz öncek mesajın yerini şimdi okuduğumuz bu mesaj alacaktır...<br>"; mesaj.text="butona tıkladın"; </script> <asp:label ID="karsilama" runat="server"></asp:label> <asp:label ID="mesaj" runat="server"></asp:label> <asp:button ID="Button_yazdir" runat="server" OnClick="yazdir" Text="mesaj yazdır" /> Burada yapılmak istenilen sayfa ilk yüklendiğinde bir mesaj olucak. Buton a basıldığında yani postback yapıldığında başka bir mesaj çıksın. 8.UYGULAMA TUR REHBERİ Bu uygulamamızda öncelikle tur bilgilerimizi oluşturmamız gerekicek. Bunun için solution Explorer kısmında proje ismimizin üstende sağ tıklayarak add- new item yolunu izleyerek buradaki data kısmından bir xml file ı projemize ekliyoruz ve daha sonra içini doldurmaya başlıyoruz. turlar.xml <?xml version="1.0" encoding="utf-8"?> <turlar-rehber>

<tur> <tur-adı>ege Turu</tur-adı> <güzargah>aydın, İzmir, Ayvalık, Çeşme, Kuşadası</güzargah> <başlangıç-tarihi>10-10-2012</başlangıç-tarihi> <bitiş-tarihi>17-10-2012</bitiş-tarihi> <ulaşım>otobüs</ulaşım> <konaklama>4 yıldızlı Otel</konaklama> </tur> <tur> <tur-adı>karadeniz Turu</tur-adı> <güzargah>bolu, safranbolu, Sinop, Samsun, Trabzon</güzargah> <başlangıç-tarihi>01-08-2012</başlangıç-tarihi> <bitiş-tarihi>11-08-2012</bitiş-tarihi> <ulaşım>otobüs, dönüş uçak</ulaşım> <konaklama>3,4 yıldızlı Otel</konaklama> </tur> <tur> <tur-adı>trakya Turu</tur-adı> <güzargah>keşan, Uzunköprü, Edirne, Tekirdağ, Erikli</güzargah> <başlangıç-tarihi>01-07-2012</başlangıç-tarihi> <bitiş-tarihi>08-07-2012</bitiş-tarihi> <ulaşım>otobüs</ulaşım> <konaklama>2,3 yıldızlı Otel</konaklama> </tur> </turlar-rehber> Burada tur rehberi tagleri altına turadı güzergah başlangıç bitiş tarihleri ulaşım ve konaklama bilgilerini kaydetmiş olduk. Şimdi ise aspx dosyamızda verileri çekip görüntüleyen kodumuzu yazalım Bunun için GridView kontrolüme ihtiyacımız olacak. Bu kontrolümüz herhangi bir veri kaynağından verileri belirli bir şablonda göstermeye yarayan bir kontroldür. Bu örneğimiz de bizim veri kaynağımız ise xml dosyamızdır. Bu örneğimizde veri kaynağımız olduğu için aspx dosyamıza bir namespace import etmemiz gerekiyor. Bu namespace veri ile ilişkili olucaktır ve bu namespace imiz <%@ Import Namespace="System.Data" %> dir. Burada veriler bir gridview kontrolü sayesinde, çok kolay bir şekilde sayfada tablo halinde gösterilebilir. turrehberi.aspx <%@ Import Namespace="System.Data" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TurlarRehberi.aspx.cs" Inherits="Web_turrehberi.TurlarRehberi" %>

<script runat="server"> void Page_Load(object sender, EventArgs e) DataSet ds = new DataSet(); ds.readxml(server.mappath("turlar.xml")); GridView1.DataSource = ds; GridView1.DataBind(); </script> <asp:gridview ID="GridView1" runat="server" EnableViewState="true"> </asp:gridview> ds.readxml(server.mappath("turlar.xml")); koduyla verileri hangi fiziksel yoldan çekiceğimizi belirledik. 9.UYGULAMA COOKİE Cookie : Türkçesi kurabiye ve ya çerezdir. Kullanıcının bilgisayarında saklanan ve sunucunun kullanıcı hakkında bir takım bilgileri elde edebildiği derğerler saklayan küçük dosyalardır. Öncelikle cookie yi elde eden sayfamızı oluşturup daha sonra bu cookie yi başka bir sayfada tekrar elde edip kullanıcağız. Cookie.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="cookie.aspx.cs" Inherits="WebCookie.cookie" %> <script runat="server"> private void Page_Load(object sender, EventArgs e) Response.Cookies["renk"].Value = "kırmızı";

private void sayfa_atla(object sender, EventArgs e) Response.Redirect("cookie_elde_et.aspx"); </script> <p style="height: 287px; width: 686px" /> /> <asp:button ID="Button1" runat="server" OnClick="sayfa_atla" Text="Button" Cookie_elde_et.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="cookie_elde_et.aspx.cs" Inherits="WebCookie.cookie_elde_et" %> <script runat="server"> private void Page_Load(object sender, EventArgs e) Response.Write(Request.Cookies["renk"].Value.ToString()); </script> Yeni sayfamızda, renk Cookie mizin değeri elde edilip sayfamıza yazdırılıyor. WEB FORM ELEMANLARI 10.UYGULAMA ADROTATOR FORM ELEMANIYA REKLAM YAPMA Adrotator internet reklamlarını yöneten kontroldür. Sayfa her yüklendiğinde, belirtilen koşullarda rastgele bir resim çıkartır.

Aynı zamanda resimlere link ekler ve yönetimini yapar. Bu kontrolün reklam konfigürasyonu ayrı bir xml dosyasında yapılır. Adrotator kontrolü bu xml dosyasına bağlanarak belirtilen reklamları gösterir. Yine solution Explorer kısmından xml dosyamızı ekliyoruz ve yazmaya başlıyoruz : Reklamlar.xml <?xml version="1.0" encoding="utf-8"?> <Advertisements> <Ad> <ImageUrl>resimler\Koala.jpg</ImageUrl> <NavigateUrl>http://www.google.com</NavigateUrl> <AlternateText>Deniz Anası</AlternateText> <Keyword>Deniz Canlıları</Keyword> <Impressions>80</Impressions> </Ad> <Ad> <ImageUrl>resimler\Jellyfish.jpg</ImageUrl> <NavigateUrl>http://www.google.com</NavigateUrl> <AlternateText>Koala</AlternateText> <Keyword>Hayvanlar</Keyword> <Impressions>80</Impressions> </Ad> </Advertisements> Burada olan resimlere erişebilmek için ImageUrl>resimler\Koala.jpg</ImageUrl> Tag ini kullanıyouz yani resmimizin yolunu belirtiyoruz resimlerimizi de yine aynı şekilde solution Explorer altında resimler adında bir klasör oluşturup onun içine ekliyoruz ki resimlerimiz her zaman bizimle olsun. <NavigateUrl>http://www.google.com</NavigateUrl> kısmında reklamımıza tıklayınca hangi adrese gidiceğini belirtiyoruz. <AlternateText>Deniz Anası</AlternateText> kısmında da resimin üzerine gelince gösterilecek olan yazıyı belirtiyoruz. <Impressions>80</Impressions> resmimizin gösterilme sıklığı <Keyword>Deniz Canlıları</Keyword> ise resmimiz hangi gruba aitse onu gösterir. Adrotator.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebReklamlar2.WebForm1" %> <script runat="server">

</script> <asp:adrotator ID="reklam" AdvertisementFile="reklamlar.xml" runat="server" /> Burada ise sadece adrotator kontrolümüzün içine AdvertisementFile="reklamlar.xml" runat="server" /> Özelliği ekleyerek reklam verileri nereden çekeceğimizi belirtiyoruz. 11.UYGULAMA CHECKBOXLİST Seçenek kutucuklarının sunucu versiyonudur. Bu kontrolün önemli özellikleri : Repeatlayout : seçeneklerin görüntülenme şeklini belirler. Table ve flow repeatdirection : elemanların sıralanam yönüdür.horizontal (yatay) ve vertical(dikey) checkboxlist.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CheckBoxList.aspx.cs" Inherits="Webcheckbox.CheckBoxList" %> <asp:checkboxlist ID="secenek_listesi" runat="server"> <asp:listitem>kitap</asp:listitem> <asp:listitem>cd</asp:listitem> <asp:listitem>poster</asp:listitem> <asp:listitem>bilgisayar</asp:listitem> <asp:listitem>kırtasiye</asp:listitem> <asp:listitem>dvd</asp:listitem> </asp:checkboxlist> <asp:checkbox ID="gosterim" runat="server" OnCheckedChanged ="gosterim_bicimi_degisti" Text="seçenekleri tablo olarak göster" />

<asp:checkbox ID="yon" runat="server" OnCheckedChanged="yon_degisti" Text="Yatay Göster" /> <asp:button ID="Button1" runat="server" OnClick="Buton_tıklandı" Text="Gönder" /> <asp:label ID="Label1" runat="server" Text="Label"></asp:Label> Burada sadece listemizi ve web form elemanlarımızı ekliyoruz. Bazı özellikleri de web formlarımızın içine ekliyoruz bunlar : OnCheckedChanged ="gosterim_bicimi_degisti" --- checkbox ın hangi yordama göre çalışacağını gösterir. OnClick="Buton_tıklandı" butonun hangi yordama göre çalışacağını gösterir. Checkboxlist.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Webcheckbox public partial class CheckBoxList : System.Web.UI.Page protected void Buton_tıklandı(object sender, EventArgs e) string secilen = "seçtikleriniz:"; for (int i = 0; i<= secenek_listesi.items.count -1; i++) if(secenek_listesi.items[i].selected) secilen = secilen + secenek_listesi.items[i].text + ""; Label1.Text= secilen; protected void gosterim_bicimi_degisti(object sender, EventArgs e) if (gosterim.checked == true) secenek_listesi.repeatlayout = RepeatLayout.Table; else secenek_listesi.repeatlayout = RepeatLayout.Flow;

protected void yon_degisti(object sender, EventArgs e) if (yon.checked == true) secenek_listesi.repeatdirection = RepeatDirection.Horizontal; else secenek_listesi.repeatdirection = RepeatDirection.Vertical; if (gosterim.checked == true) ifadesiyle kutunun işaretlenip işaretlenmediğini kontrol edebiliyoruz. secenek_listesi.items.count ifadesiyle checkbox ta listedeki elemanların sayısını döndürür. secenek_listesi.repeatlayout = RepeatLayout.Table; ifadesiyle seçeneklerimizin görünme şeklini ayarlıyoruz. secenek_listesi.repeatdirection = RepeatDirection.Horizontal; ifadesiyle seçeneklerin yönünü ayarlıyorz. Checkbox ın temel olay tanımı oncheckchanged dir. Bu olay ifadesi seçenekte bir değişim olup olmadığının belirtir. 12. UYGULAMA DROPDOWNLİST Dropdownlist kontrolü bize aşağıya akan bir görünümle seçenekler sunar. Bu listeden seçilen değerlere göre işlem yapılır. Listede görmek istediğimiz seçenekleri <asp:listitem>pop</asp:listitem> şeklinde belirtebiliyoruz.

Listcontrol class özellikleri kullanabiliyoruz. Bunlardan birtanesi selecteditem dir.bu özellikle hangi seçeneğin tercih edildiği belirtilir. Dropdownlist.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Dropdown.aspx.cs" Inherits="WebDropDownList.Dropdown" %> <asp:dropdownlist ID="secenekler" OnSelectedIndexChanged="secim" runat="server"> <asp:listitem>pop</asp:listitem> <asp:listitem>rock</asp:listitem> <asp:listitem>jazz</asp:listitem> <asp:listitem>classic</asp:listitem> <asp:listitem>heavy Metal</asp:ListItem> <asp:listitem>blues</asp:listitem> </asp:dropdownlist> <asp:label ID="Label1" runat="server" Font- Names="Verdana"></asp:Label> Dropdownlist.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI;

using System.Web.UI.WebControls; namespace WebDropDownList public partial class Dropdown : System.Web.UI.Page protected void secim(object sender, EventArgs e) Label1.Text = "Seçtiğin Değer : " + secenekler.selecteditem.text; Bu örneğimizde seçeneğin text özelliğinden faydalanıyoruz ve bunu bir label kontrolüne atayarak seçimimizin sayfada görüntülenmesini sağlıyoruz. 13. UYGULAMA LİSTBOX Bu kontrolde seçenekler liste halinde bir kutu içerisinde gösterilir. Width ile kutunun genişliği, height ile yüksekliği belirlenebiliyor. Selectedindex, listedeki elemanların sıra numarasını belirtir. Listedeki elemanlar en baştan itibaren sıfırdan başlayarak numaralandırılır. Listbox.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebListBox2.WebForm1" %> <asp:listbox ID="secim_kutusu" OnTextChanged="secim" AutoPostBack="true" runat="server"> <asp:listitem>ford</asp:listitem> <asp:listitem>mercedes</asp:listitem> <asp:listitem>bmw</asp:listitem> <asp:listitem>toyota</asp:listitem> <asp:listitem>honda</asp:listitem> <asp:listitem>opel</asp:listitem> </asp:listbox> <p /> <asp:label ID="Label1" runat="server" Text="Label"></asp:Label>

Listbox.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebListBox2 public partial class WebForm1 : System.Web.UI.Page protected void secim(object sender, EventArgs e) int a = secim_kutusu.selectedindex + 1; Label1.Text = "seçtiğiniz değer" + secim_kutusu.selecteditem.text + "<br> listedeki " + a + ". elemanını seçtiniz"; Burada listbox tan seçtiğimiz değeri label a yazdırıyoruz. 14. UYGULAMA RADİOBUTTON, RADİOBUTTONLİST Radiobuttonları tanımlanmış bir grup içinden sadece bir seçeneği işaretlememize imkan veren kontrollerdir. İki şekilde oluşturulabilir radiobutton ve radiobuttonlist şeklinde oluşturulabilir. 6 tane radio buton ekliyoruz. Her radiobutonun text özelliğinde text kısmında takımların ismini ekliyoruz. Grup özelleğinde de takım ve arabalar diye 2 ayrı grup oluşturuyoruz. Buton içine onclick özelliğiyle birlikte cs dosyamızda tanımladığımız gönder yordamını eşleştiriyoruz. Şimdi kodlarımızı inceliyoruz. RADİOBUTTON.ASPX <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebRadioButton2.WebForm1" %>

<h3> Bir Takım Seçiniz </h3> <asp:radiobutton ID="RadioButton1" runat="server" GroupName="takimlar" Text="Galatasaray" /> <asp:radiobutton ID="RadioButton2" runat="server" GroupName="takimlar" Text="Fenerbahce" /> <asp:radiobutton ID="RadioButton3" runat="server" GroupName="takimlar" Text="Besiktas" /> <h1> Bir araba markası seçiniz </h1> <asp:radiobutton ID="RadioButton4" runat="server" GroupName="arabalar" Text="Toyota" /> <asp:radiobutton ID="RadioButton5" runat="server" GroupName="arabalar" Text="Mercedes" /> <asp:radiobutton ID="RadioButton6" runat="server" GroupName="arabalar" Text="Opel" /> <asp:button ID="Button1" runat="server" OnClick="gonder" Text="Gönder" /> <asp:label ID="Label1" runat="server" Font-Bold="true" Font- Size="14pt"></asp:Label> Radiobutton.aspx.cs using System.Collections.Generic; using System.Linq; using System.Web;

using System.Web.UI; using System.Web.UI.WebControls; namespace WebRadioButton2 public partial class WebForm1 : System.Web.UI.Page protected void gonder(object sender, EventArgs e) if (RadioButton1.Checked) Label1.Text = "Takım olarak;" + RadioButton1.Text; else if (RadioButton2.Checked) Label1.Text = "Takım olarak;" + RadioButton2.Text; else if (RadioButton3.Checked) Label1.Text = "Takım olarak;" + RadioButton3.Text; if (RadioButton4.Checked) Label1.Text += " <br>araba markası olarak;" + RadioButton4.Text + "seçtin"; else if (RadioButton5.Checked) Label1.Text += " <br>araba markası olarak;" + RadioButton5.Text + "seçtin"; else if (RadioButton6.Checked) Label1.Text += "<br>araba markası olarak;" + RadioButton6.Text + "seçtin"; Burada if döngüsü içinde hep aynı işlemleri yapıyoruz bunları anlatmak gerekirse : if (RadioButton1.Checked) Label1.Text = "Takım olarak;" + RadioButton1.Text; else if (RadioButton2.Checked) Label1.Text = "Takım olarak;" + RadioButton2.Text; Bölümünde tanımladığımız radiobutton umuz işaretlendiyese bunu text olarak label a yazdırıyoruz. Else if döngüsüyle de hangi radiobuttonu seçersek onu yazdırıyoruz. Gördüğümüz üzere 2 tane grubumuz var bunlar da arabalar ve takımlar için ayrı ayrı if bloğu uyguladık. Gruptan hangi buton işaretlendiyse buna göre işlem yapılıyor. 15. UYGULAMA RADİOBUTTONLİST Radiobutton la yaptığımız işlemleri şimdi de radiobuttonlist kontrolüyle yapalım.

Radiobutonliste oluşturma işlemi radiobutton a göre çok daha kolaydır. Burada extra olarak sayfa konumlandırmasını yatay dikey ve yapısını da tablo veya flow olarak seçebiliyoruz yani RepeatDirection ve RepeatLayout özelliği kullanıyoruz. Radiobuttonlist.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebRadioButtonList2.WebForm1" %> <h4> Lütfen Bir Takım Seçiniz...</h4> <asp:radiobuttonlist ID="RadioButtonList1" RepeatLayout="Table" runat="server"> <asp:listitem Selected="True">Galatasaray</asp:ListItem> <asp:listitem>fenerbahce</asp:listitem> <asp:listitem>besiktas</asp:listitem> <asp:listitem>sanika Boru Elazığspor</asp:ListItem> <asp:listitem>bursaspor</asp:listitem> <asp:listitem>tavşanlı Linyit Spor</asp:ListItem> </asp:radiobuttonlist> <h4> Lütfen Bir Araba Markası Seçiniz...</h4> <asp:radiobuttonlist ID="RadioButtonList2" RepeatDirection="Horizontal" RepeatLayout="Flow" runat="server"> <asp:listitem>bmw</asp:listitem> <asp:listitem>mercedes</asp:listitem> <asp:listitem>audi</asp:listitem> <asp:listitem>toyota</asp:listitem> <asp:listitem>ford</asp:listitem> <asp:listitem>mazda</asp:listitem> </asp:radiobuttonlist> <asp:button ID="Button1" OnClick="sec" runat="server" Text="Seç" /> <asp:label ID="Label1" runat="server" Text="Label"></asp:Label> Burada gördüğümüz gibi 2 adet radiobuttonliste ekliyoruz ve listitem lerin sayısını arttırıp textlerini istediğimiz gibi düzenliyoruz. bunun dışında seçtiğimiz değerleri yazdırdığımız labelı ekliyoruz. Butona da yine aspx.cs dosyaında yarattığımız sec yordamını onclick özelliğiyle eşleştiriyoruz.

Radiobuttonlist.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebRadioButtonList2 public partial class WebForm1 : System.Web.UI.Page protected void sec(object sender, EventArgs e) Label1.Text = "Takım Olarak:" + RadioButtonList1.SelectedItem.Text; Label1.Text += "<br> Araba Markası Olarak: " + RadioButtonList2.SelectedItem.Text + " seçtin"; Burada sec yordamını tanımlıyoruz. Bu yordamın içinde label a hangi textleri yazdırdığımızı gösteriyoruz. 16. UYGULAMA PANEL PANEL: kontrolleri, sayfada programatik olarak oluşturmamıza yardımcı olan bir kontroldür. Panel kontrolü, içinde diğer kontrol veya kontrolleri barındırır ve bunları sayfada görüntüler. Programatik olarak oluşturmak = kontrolü kod kısmında tanımlayıp panel kontrolüne ekleyerek görüntülemek demektir. Panel in diğer bir avantajı ise içinde bulunduğu kontrolleri bir grup olarak görünür yada görünmez yapabiliriz. PANEL.ASPX

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Panel.aspx.cs" Inherits="WebPanel.Panel" %> <asp:panel ID="Panel1" runat="server" BackColor="Aqua" Height="237px" Width="390px"> </asp:panel> <asp:checkbox ID="gizle" runat="server" Text="Paneli Gizle" AutoPostBack="true" OnCheckedChanged="panel_gizle" /> Bu bölümde sadece panel ve checkbox ekliyoruz. Checkbox in amacı isminden de anlaşıldığı gibi paneli gizlemeyle ilgilidir. Yani checkbox işaretli olunca panale gizlenecektir. Bu olayı da OnCheckedChanged="panel_gizle" koduyla gerçekleştireceğiz. Yani panel gizle yordamına göre işlem yapacaktır. PANEL.ASPX.CS using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebPanel public partial class Panel : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) TextBox metin_kutusu = new TextBox(); Panel1.Controls.Add(metin_kutusu); Button buton = new Button(); Panel1.Controls.Add(buton);

buton.text = "gönder"; protected void panel_gizle(object sender, EventArgs e) if (gizle.checked) Panel1.Visible = false; else Panel1.Visible = true; Burada Page_Load yordamında kontrollerimizi programatik olarak oluşturuyoruz. Panel in özelliğiydi bu. TextBox metin_kutusu = new TextBox(); bu kod ile textbox yarattık. Panel1.Controls.Add(metin_kutusu); burada yarattığımız textbox ı panele ekledik Button buton = new Button(); Panel1.Controls.Add(buton); buton.text = "gönder"; burada da buton yarattık. Buton u panel e ekledik ve extra olarak burada buton a text ekledik yani isim verdik. Panel_gizle yordamında da checkbox la birlikte kullanacağımız paneli gizleme kodunu yazdık. if (gizle.checked) Panel1.Visible = false; else Panel1.Visible = true; Bu kodda yapılmak istenilen eğer checkboxımız işaretliyse Panel1.Visible = false; yani panel gizleniyor. Aksi durumda ise panel gözüküyor. 17. UYGULAMA İMAGEBUTTON

Buton kontrolü gibi sunucuya postalama yapan kontroldür. Farkı ise istediğimiz resmi kullanabilmemizdir. Bu kontrol içine bir imagemap tanımlayıp resmin değişik yerlerine tıklayınca değişik işlemler yapılmasını sağlayabilir. Örneğimiz de bununla ilgili İMAGEBUTTON.ASPX <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ımagebutton.aspx.cs" Inherits="WebImageButton.ımagebutton" %> <asp:imagebutton ID="ImageButton1" OnClick="ImageButon_Click" runat="server" Height="211px" ImageUrl="~/resim/Penguins.jpg" Width="208px" /> <asp:label ID="Label1" runat="server" Text="X"></asp:Label> <asp:label ID="Label2" runat="server" Text="Y"></asp:Label> <asp:label ID="Label3" runat="server"></asp:label> Burada <asp:imagebutton ID="ImageButton1" OnClick="ImageButon_Click" runat="server" Height="211px" ImageUrl="~/resim/Penguins.jpg" Width="208px" /> Koduyla yapılan işlemler imagebuton_click yordamıyla çalışcağını belirtiyoruz ve solution Explorer den ekledğimiz resmin fiziksel adresini ImageUrl="~/resim/Penguins.jpg" özelliğiyle belirtiyoruz. Labellarda da resim üzerinde nereye basarsak X vey olmak üzere bastığımız yerin koordinatları yazacak. 3.label da ise resmin başlığına mı yok sa başka bir yerine mı bastığımızı ekrana yazdıracak. Bunların kod bölümü ise aspx.cs dosyamızda dır. İMAGEBUTTON.ASPX.CS

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebImageButton public partial class ımagebutton : System.Web.UI.Page protected void ImageButon_Click(object sender, ImageClickEventArgs e) int x = e.x; int y = e.y; Label1.Text = "X:" + x.tostring(); Label2.Text = "Y:" + y.tostring(); if (y >= 47) Label3.Text = "<b> başlığın altını </b>tıkladın"; else Label3.Text = "<b> başlık </b> kısmını tıkladın"; Bu bölümde de resmimizin üstünde herhangi bir yere tıkladığımızda o tıkladığımız yerin koordinatını veren ve başlığa mı yoksa resimemi tıkladığımızı gösteren koddur. X ve Y labellarımızın textleri olarak tanımlanmıştı. Fark ettiysek ImageButon_Click(object sender, ImageClickEventArgs e) yordamında eventargs değilde imageclickeventargs argümanı tanımlanmıştır. Bunun nedeni tıkladığımız kısıma göre işlem yapmasını sağlamasıdır Burada resmin 47 pixellik kısmına tıklandığında bir mesaj, 47 pixellikten daha fazla olan kısma tıklandığında ise başka bir mesaj verecektir. 18. UYGULAMA TABLE, TABLECELL, TABLEROW Programatik olarak tablo oluşturmasını sağlayan kontrollerdir. Herhangi bir HTML tablo tag i yazmadan uygulamamızda tablo oluşturmamızı sağlar. Sunucu bizim belirttiğimiz koşullarda tablo oluşturur ve bunun HTML karşılığını üretir TABLO.ASPX

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Tablo.aspx.cs" Inherits="WebTablo_Yapma.Tablo" %> <asp:table ID="Table1" BorderColor="Black" GridLines="Both" CellPadding="5" CellSpacing="1" BorderWidth="2" Font-Names="Verdana" Font- Size="Medium" runat="server"> </asp:table> Tablo Satırları : <asp:listbox ID="Liste1" runat="server"> <asp:listitem Value="1" Selected="True">1</asp:ListItem> <asp:listitem Value="2">2</asp:ListItem> <asp:listitem Value="3">3</asp:ListItem> <asp:listitem Value="4">4</asp:ListItem> </asp:listbox> Tablo Hücreleri : <asp:listbox ID="Liste2" runat="server"> <asp:listitem Value="1" Selected="True">1</asp:ListItem> <asp:listitem Value="2">2</asp:ListItem> <asp:listitem Value="3">3</asp:ListItem> <asp:listitem Value="4">4</asp:ListItem> </asp:listbox> <asp:button ID="Button1" runat="server" Text="Tablo oluştur" /> Burada 2 tane listbox ekliyoruz ve dildeğiiz kadar listitem ekleyebiliyoruz. Tablo satırları ve tablo hücreleri diyerek listboxlarımız önüne text ekliyoruz. Ve tabiî ki bir de buton ekliyoruz bu buton da istediğimiz kadar tablo oluşturmamızı sağlayacaktır. TABLO.ASPX.CS

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebTablo_Yapma public partial class Tablo : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) int satir_no; int hucre_no; TableRow satir; TableCell hucre; // satir değişkeni tanımlama // hücre değişkeni tanımlama satir_no = int.parse(liste1.selecteditem.value); hucre_no = int.parse(liste2.selecteditem.value); // satir sayısı kadar döndürecek for (int satir_sayisi = 0; satir_sayisi <= satir_no - 1; satir_sayisi++) satir = new TableRow(); // hücre sayısı kadar döndürecek for (int hucre_sayisi = 0; hucre_sayisi <= hucre_no - 1; hucre_sayisi++) hucre = new TableCell(); // hücremin içinde ne yazacak hucre.text = "satır" + satir_sayisi + 1 + ",hücre" + hucre_sayisi +1; ekleme satir.cells.add(hucre); // satirlara hücre Table1.Rows.Add(satir); // tabloma satır ekleme Yukarıdaki kodlarda açıklamalarında ne iş yaptıkları yazmaktadır.

19. UYGULAMA TAKVİM OLUŞTURMA ASP.NET üzerinde tablo oluşturmamızı sağlayan bir kontroldür. Eklemek için sadece toolbox tan calender nesnesi ekliyoruz ve bunun değişik özelliklerini kullanarak görsel açıdan tablomuz üzerinde oynamalar yapabiliyoruz. TAKVİM.ASPX <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Takvim.aspx.cs" Inherits="WebTakvim.Takvim" %> <asp:calendar ID="Calendar1" DayNameFormat="Full" runat="server"></asp:calendar> 20. UYGULAMA PLACEHOLDER Bu kontrolümüzde panel kontorlünde olduğu gibi programatik olarak yani sadece program esnasında eklenen kontrolleri sayfada gösterir. PLACEHOLDER.ASPX <%@ Page Language="C#" AutoEventWireup="true" CodeFile="15_PlaceHolder.aspx.cs" Inherits="_06_web_form_elemanlari_15_PlaceHolder" %> <body bgcolor="#daeef3">

<asp:placeholder ID="ph" runat="server" /> Burada sadece placeholder nesnemizi ekleyip ID sine ph diyoruz. PLACEHOLDER.ASPX.CS using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _06_web_form_elemanlari_15_PlaceHolder : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) ph.controls.add(new LiteralControl("isim: ")); TextBox metinkutusu = new TextBox(); ph.controls.add(metinkutusu); ph.controls.add(new LiteralControl("<p/>")); Button buton = new Button(); buton.text = "gönder"; ph.controls.add(buton); Panel nesnemizdeki aynı kodlar burada da var. Kontrolümüzü oluşturuyoruz ve ph.controls.add(metinkutusu); diyerek placeholderimiza ekliyoruz.