Sayfanın taryıcıya gönderilmesi anına kadar kontrol edilebilir sayfa olaylarına genel olarak bakacak olursak PreInit, Init, InitComplete, PreLoad, Load, PreRender, PreRenderComplete, Unload olaylarını görürüz... Bu olayları kısaca açıklayayim...
PreInit: Sayfanın kullanıma hazırlanmasındaki ilk olaydır.
Init: Sayfanın kullanıma hazırlandığı safhadır. Ön yükleme diye adlandırabiliriz. Kontroller yüklenmeye başlar. Dinamik olarak kontrol ekleyecekseniz en uygun safhadır ki Belleğe ikinci işlemi yaptırmadan daha yüksek perdormans kullanabilesiniz.
InitComplete: Kontroller yüklenmesi tamamlanmıştır. Artık Load eventinde kontrollere erişebilir ve işlem yapabilirsiniz.
PreLoad: Sayfa belleğe yüklenmeye başlamak için hazırlanır.
Load: Sayfa belleğe yüklenir.
LoadComplete: Sayfanın belleğe yüklenmesi tamamlanır.
PreRender: Konroller bellekten tarayıcı için oluşturulmaya başlar.
PreRenderComplete: Sayfanın tarayıcıya gitmesi için hazır olduğu andır. Aynı zamanda viewstate bilgileride bu anda yüklenmiştir.
Unload: Sayfa bellekten silinir. Tüm kontroller bellekten kaldırılır.
Şimdi bu olayların yönetilmesine bakalım.
Page directive'inde default olarak tanımlı gelen AutoEventWireUp="true" attribute'u sayfanızda code-behind olarak eventlara ait protected methodları manuel olarak yazıp kullanmanıza olanak tanır. Sayfa yüklenirken burda belirttiğim 9 olaya ait methodları arar ve varolanların içindeki kodları gerçekleştirir. AutoEventWireUp attribute'u size event yaratmadan manuel olarak sadece olaylara ait methodları ve parametrelerini belirtip kullanmanızı sağlar.
Örneğin AutoEventWireUp="true" olduğu durumda code-behind sayfanıza
protected void Page_LoadComplete(object sender, EventArgs e) {
//
}
methodunu ekleyip kullanabilirsiniz ancak
false olduğu durumda öncelikle partital class ait bir
constructor tanımlayarak classın çağırıldığı anda istediğiniz event'ların yaratılmasını sağlamanız gerekir. Örnekleyecek olursak
public deneme() {
Page.LoadComplete += new EventHandler(Page_LoadComplete);
}
deneme class ı için bir constructor tanımlayarak önce eventi belirtelim daha sonra...
protected void Page_LoadComplete(object sender, EventArgs e) {
//
}
böylelikle artık sayfanın yüklenme safhasındaki olaylara müdahale edebiliriz. Bunların haricinde birkaç Page Event daha mevcut tabikide örneğin transactionları yönetmek, databinding anını gözlemlemek gibi... onlarıda başka bir yazıya artık...