Sayfa Olayları Nedir ? , ASP.NET Events
Kullanıcı giriş bilgilerini dinamik olarak kullanmayı sağlar. Bir kullanıcı bir Web sayfasına istekte bulunduğu zaman, girdiği bilgiler Client-side olarak çalışır. Bir çok Web sayfasında olduğu gibi Submit Button’una basınca bir Event üreterek Server’a gönderir. Mesela, girilen kullanıcının bilgilerini SQL Server veritabanına göndermek , buna en uygun örneklerden biridir.
İki tip Event Procedure vardır. Client-side ve Server-Side. Her ikisinin de kendine göre avantaj ve dezavantajları vardır.
Client-Side Nedir ?
Bir Client web sayfasını açmak için Server’a bağlanır. Bundan sonraki olaylar client üzerinde gelişir. Server’a geri bilgi gönderilemez. Client-Side event procedure, yalnızca HTML kontroller kullanabili.r Server kaynaklarını asla kullanamaz. Örneğin, SQL Server veritabanını açmak için Client-Side Script kullanamayız. <SCRIPT> tanımalaması aşağıdaki gibidir.
<script language=”JavaScript”> veya <script language=”VbScript”>
Server-Side Nedir ?
İşlemler sonucu bilgiyi Web Server’a gönderir. Hem Web, hem de HTML kontroller kullanılır. Kod’un derlenmesi ve çalışması Server üzerinde olur. Aşağıdaki gibi script tanımlaması yapılır.
<script language=”c#” runat=”server”>
Server-Side ; event procedure’in, kontrol event tiplerinin sayısı ile sınırlıdır. Örneğin Client-Side event procedure’lerde Mousekey Event ve Oncharge Event varken, Server-side event procedure Onclick event ‘ına destek verir. Ve OnChange event’ının özel bir versiyonunu destekler, Mousekey event’ını desteklemez.
Event Procedure Oluşturma
Visual Studio.NET içinde event procedure oluşturmayı iki adım ile gerçekleştiririz. İlk adım Web Form üzerine kontrol getirerek bunlara ait event oluşturup daha sonra CodeFile sayfaları ile bu kontrollerin event’larına ait kodları yazarız. Bu basitçe kontroller üzerine çift tıklanarak geçilen Code-Behind sayfasında yapılabilir. Örneğin;
<form id=”form1” method=”post” runat=”server”>
<asp:Button id=”Button1” runat=”server”/>
</form>
Tüm event’lar iki argüman içerir. Event’ın Sender’ı ve event için data bilgilerini tutan Class. Bu genellikle EventArgs tipi ile kullanılır. Ama bazı durumlarda özel şekilleri kullanılır.
Örneğin Image Button web kontrolü için ikinci argüman ImageClickEventArgs yazılır. Bu, kullanıcının tıkladığı koordinatları belirtir.
Eski olayların yanı sıra yeni eklenen event’larda mevcuttur.
| Olay | Açıklama |
| AbortTransaction | Transaction olayında; işlemin iptal olduğu anda meydana gelecek kodların yazıldığı yerdir. |
| CommitTransaction | Transaction olayında; işlemin tamamlandığı anda meydana gelecek kodların yazıldığı yerdir. |
| DataBinding | Veri bağlama olayıdır. |
| Disposed | Sayfanın hafızadan silindiği anda meydana gelen olaydır. |
| Error | Sayfada hata oluştuğunda meydana gelen olaydır. |
| Init | Sayfanın ön yüklemeye başlanması olayıdır. |
| InitComplete | Tüm Child kontrollerinin yüklenmesi tamamlandığında meydana gelir. Sayfanın başlangıç yüklenmesi tamamlanmıştır. Bundan sonra içinde Load geçen olaylar devreye girer. Init’ler sırasında TrackView-State methodu çağrılır. |
| Load | Sayfanın esas yüklenmesidir. |
| LoadComplete | Sayfanın esas yüklenmeyi tamamlamasıdır. |
| PreInit | İlk olaydır. Init olayından önce meydana gelir. |
| PreLoad | Init olaylarından sonra sayfanın durum (state) bilgilerini yüklemeye başladığı olaydır. |
| PreRender | Tüm Child kontrollerinin oluşmaya başlaması olayıdır. |
| PreRenderComplete | Child kontrollerinin oluşumunu tamamlaması ve kişisel bilgilerin kontrol ve View State yapısının kaydedildiği olaydır. |
| SaveStateComplete | Durum kaydetme yapısının tamamlandığı andır. |
| Unload | Sayfanın hafızadan temizlenmesinden önceki son olaydır. Tüm Child kontroller sayfa üzerinden silinir. |
Asp .NET Uygulama 2
1) Default.aspx ve hedef.aspx adlı 2 adet web sayfası oluşturuyoruz.
2) Default.aspx üzerine bir TextBox ve bir Button bırakarak, Button1 ‘in Text kısmına Gönder yazalım.
3) Default.aspx üzerindeki Button1’in özelliklerinde bulunan PostBackUrl özelliğinin yanına “hedef.aspx” yazalım. Böylelikle Button1’e tıkladığımız zaman, bu sayfaya yönlenme yapacaktır.
4) “hedef.aspx” dosyasının Page_Load event’ına aşağıdaki kodu yazacağız. Bu kod’da direkt olarak bu sayfayı çalıştırdığınızda bir işlem olmaması için bir kontrol koyduk. Eğer default.aspx sayfasından hedef.aspx sayfasına geçiş olursa o zaman TextBox1 değeri, buraya başına “Merhaba” konularak yazılacaktır.
If (PreviousPage == null)
{
Response.Write(“Bu sayfayı direkt olarak çalıştıramazsınız”);
Response.End();
return;
}
TextBox t = (TextBox)
PreviousPage.FindControl(“TextBox1”);
Response.Write(“<b>Merhaba</b>”+ t.Text);
5) İlk olarak “hedef.aspx” sayfasını çalıştırdığınızda karşınıza uyarı mesajınız gelecektir.
6) Default.aspx dosyasını çalıştırarak TextBox1 içerisine bir metin girerek gönder button’una basalım.
7) Gönder button’una bastığınızda diğer sayfada Merhaba Yazdığınız Metin şeklinde gözükmesi gerekmektedir.
Benzer Yazılar
Etiketler: AbortTransaction, Asp .net events, asp.net sayfa olayları, client-side, client-side nedir, CommitTransaction, DataBinding, Disposed, Error, event procedure create, event procedure oluşturma, events procedure, Init, InitComplete, Load, LoadComplete, postbackurl, PreInit, PreLoad, PreRender, PreRenderComplete, SaveStateComplete, sayfa olayları, server-side, server-side nedir, Unload

