ASP.NET Page Life Cycle Events

ASP.NET Page Life Cycle Events – हमारे Webpage की Life-Cycle के हर Stage के साथ कुछ Events भी Associated रहते हैं, जो Particular Stage को Represent करते हुए Trigger होते हैं। इसलिए इन Events के Response में हम हमारी जरूरत के अनुसार अपने Event Handler Methods Define कर सकते हैं, जिनमें लिखे गए Program Logic उस समय Execute होते हैं, जब वह Particular Event Trigger होता है, जिसके Response में हमें हमारे Event Handler Method को Execute करना होता है।

जब हम हमारे Webpage के Page Directive में AutoEventWireup=”true” Attribute को Specify करते हैं, तो उस स्थिति में Page द्वारा जितने भी Events Trigger होते हैं, उनके लिए Create किए जाने वाले Event Handlers Page_EventName Format में Define करने जरूरी होते हैं। जैसे Page_Load(), Page_Init(), Page_Unload()आदि।

PreInit Page Event

ये Event तब Trigger होता है, जब Page अपने Start Stage को Complete कर चुका होता है, लेकिन Page का Initialization Stage अभी तक शुरू नहीं हुआ होता। इस Event को सामान्‍यत: निम्न परिस्थितियों को Handle करने के लिए अपनी Code-Behind Class File में Define किया जाता है:

    • IsPostBack Property को Check करके इस बात का पता लगाया जाता है कि Process होने वाला Page, पहली बार Process हो रहा है या वह एक PostBack Page है। IsCallbackIsCrossPagePostBack Properties को भी इसी Event के Response में Create किए जाने वाले Event Handler Method में Set किया जाता है।
    • किसी Dynamic Control को Create या Recreate करने के लिए भी लिखे जाने वाले Program Logic को इसी Event के Response में Create किए जाने वाले Event Handler Methods में लिखा जाता है।
    • जब हमें हमारे Webpage के साथ किसी Master Page को Set करना होता है, तो इस जरूरत को पूरा करने के लिए भी इसी Event के Response में Create किए जाने वाले Event Handler Method में Master Page को Set किया जाता है।
    • जब हमें हमारे Webpage के साथ किसी Theme को Dynamically Set करना होता है, तो इस जरूरत को पूरा करने के लिए भी इसी Event के Response में Create किए जाने वाले Event Handler Method में Theme को Set किया जाता है।
    • जब हम Profile Property Values को Read या Set करना चाहते हैं, तब भी हमें इसी Event के Response में Create किए जाने वाले Event Handler Method में Profile Property Values को Read या Set करना होता है।

यदि आने वाली Request एक PostBack Request हो, तो इस Event के Trigger होने तक आने वाले View-State से Page के सभी Controls की Values Restored नहीं हुई होती हैं। इसलिए यदि हम इस Event के Response में Create किए जाने वाले Event Handler Method में Program Logic के माध्‍यम से किसी Control की Property को Set करते हैं, तो उस Property को अगले Event के Response में लिखे गए Event Handler Method द्वारा Overwrite किया जा सकता है।

Init Page Event

ये Event तब Fire होता है जब हमारे Webpage के सभी Controls पूरी तरह से Initialized हो चुके होते हैं और उनसे सम्बंधित विभिन्न प्रकार की Skin Settings उन पर Apply हो चुके होते हैं।

यहां ये बात ध्‍यान रखने वाली है कि Page पर स्थित विभिन्न Controls की भी अपनी Life Cycle होती है और उस Life Cycle में भी Init Event होता है। अत: हमारे Page पर स्थित Control का Init Event,हमारे Page के Init Event से पहले Trigger होता है।

इस Event के Response में Create किया जाने वाला Event Handler, Page पर स्थित Controls की Properties को Read या Initialize करने के लिए ही Create किया जाता है।

InitComplete Page Event

जब हमारा Page पूरी तरह से Initialize हो जाता है, तब ये Event Trigger होता है।

Init InitComplete Events के बीच केवल View-State Tracking को On करने के अलावा और कोई Operation Perform नहीं किया जाता। जबकि View-State Tracking को On करने पर ViewState Collection में Programmatically Add किया जाने वाला हर मान Persist रहता है यानी एक से ज्यादा Request/Response Cycle के बीच उपलब्ध रहता है।

जब तक View-State Tracking Enable नहीं होता, तब तक View-State में Programmatically Add किया गया कोई भी मान PostBack के दौरान उपलब्ध नहीं रहता। इसलिए Page के Controls सामान्‍यत: अपने Init Event को Trigger करने के साथ ही View-State Tracking को On भी कर देते हैं।

इस Event के Response में हम जो Event Handler Create करते हैं, उसे इसीलिए Create करते हैं, ताकि अगले PostBack के दौरान हमें हमारे View-State में जो Changes चाहिए होते हैं, उन Changes के लिए लिखे जाने वाले Program Logic को इसी Event Handler में लिखा जा सकता है।

PreLoad Page Event

जब हमारा Page अपने सभी Controls व स्वयं के लिए View-State को Load कर देता है, उसके बाद ये Event Fire होता है और इसके Trigger होने के बाद जब PostBack Data Process होता है, तो वह Processed Data हमारे Page के Request Instance के साथ Include हो जाता है।

Load Page Event

इस Event के रूप में हमारा Webpage OnLoad() Method को Call करता है और फिर Page के सभी Child Controls को Load करने के लिए OnLoad() Method को तब तक Recursively Call करता रहता है, जब तक कि Page के सभी Controls, ASP.NET Server Computer की Memory में Load नहीं हो जाते। जबकि Page का Load Event, Page के सभी Individual Controls के Load Event के Trigger हो जाने के बाद Fire होता है।

सामान्‍यत: OnLoad Event Method का प्रयोग Database Connections Establish करने तथा Controls की Properties को Set करने के लिए किया जाता है।

Control Events

इसके अन्‍तर्गत Webpage के सभी Controls के Events को Fire किया जाता है। उदाहरण के लिए Button का Click Event, TextBox Control का TextChanged Event आदि इस Stage के अन्तर्गत Specify किए जाते हैं।

किसी Page के PostBack Request में यदि Validator Controls हों, तो हमें Page की IsValid Property को Check करना होता है तथा किसी भी Processing को Perform करने से पहले हमें हर Individual Control के लिए Validation करना होता है।

LoadComplete Page Event

ये Event, Event Handling Stage के सभी Control के विभिन्‍न Events के Trigger हो जाने के बाद Fire होता है। इस Event के लिए तब Event Handler Create किया जाता है, जब हम Page के सभी Controls के पूरी तरह से Load हो जाने के बाद किसी Operation को Perform करना चाहते हैं।

PreRender Page Event

Page को Render करने के लिए Composite Controls के Child Controls सहित जितने भी Controls की जरूरत होती है, जब Page Object उन सभी Controls को पूरी तरह से Create कर लेता है, उसके बाद ये Event Execute होता है।

जबकि Page के सभी Composite Controls के Child Controls को Create करने के लिए हमारा Page Object, हर Control के लिए EnsureChildControls() Method को Call करता है।

Page Object, PreRender Event को सबसे पहले Page Object के लिए Trigger करता है, उसके बाद Page के हर Control के लिए ये Event Recursively Fire होता है। यानी पहले Page का PreRender Event Fire होता है और उसके बाद Page पर स्थित हर Individual Control का PreRender Event Fire होता है।

इस Event के Response में Execute होने वाले Event Handler Method में उन Program Logic को Specify किया जाता है, जो कि Page या उसके किसी Control के Rendering शुरू करने से पहले उनके Content को अन्तिम रूप से Change या Modify करना चाहते हैं।

PreRenderComplete Page Event

ये Event तब Fire होता है जब हर Data Bound Control के DataSourceID Property में DataBind Method Set कर दिया जाता है।

SaveStateComplete Page Event

ये Event तब Trigger होता है जब Page व उसके सभी Controls के लिए View-State Control State को Save कर दिया गया होता है। इस Stage में हम Page या Control में जो भी Change करते हैं, वे Changes Rendering को प्रभावित करते हैं, लेकिन ये Changes अगले PostBack में Available नहीं रहते।

Render() Method

ये कोई Event नहीं है, बल्कि एक Method है जो Page की एक Stage को Represent करता है और Page की इस Stage में Page Object अपने हर Control के लिए इस Render() Method को Call करता है, जो कि Control के Markupsको Web Browser में Send करने का काम करता है।

यदि हम कोई Custom Control Create करते हैं, तो सामान्‍यत: हमें इस Method को Override करना जरूरी होता है, ताकि हम हमारे Custom Control के Markup को Output के रूप में Web Browser को Send कर सकें।

हालांकि यदि हमारे Custom Control में केवल ASP.NET Web Server Controls ही होते हैं और कोई Custom Markup नहीं होता, तो उस स्थिति में हमें इस Method को Override करना जरूरी नहीं होता।

जबकि यदि हम .ascx File के माध्‍यम से User Control Create करते हैं, तो उस स्थिति में Rendering का काम Automatically Handle किया जाता है। इसलिए उस स्थिति में हमें Manual Rendering Code लिखने की जरूरत नहीं होती।

Unload Page Event

Page के पूरी तरह से Render हो जाने के बाद Page के हर Control व उसके बाद Page Object के लिए ये Event Trigger होता है। इस Event के लिए Create किया जाने वाला Event Handler हमारे Controls के लिए Final Cleanup का काम करता है। इसलिए किसी Control Specific File Stream अथवा Database Connection को Close करने का काम इसी Event के Handler द्वारा Perform किया जाता है।

जबकि Page Specific File Closing या Database Connection Closing अथवा किसी अन्‍य प्रकार के Request Specific Task को Fulfill करने का काम इस Event के Handler द्वारा किया जाता है।

चूंकि इस Event के Fire होने तक हमारा Page व उसके विभिन्न Controls अपने Data के साथ Render हो चुके होते हैं, इसलिए हम इस Event के Handler द्वारा अपने Page के Response Stream में किसी प्रकार का कोई Change नहीं कर सकते। (ASP.NET Page Life Cycle Events)

Core ASP.NET WebForms in Hindi - BccFalna.com: TechTalks in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Core ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

Core ASP.NET WebForms in Hindi | Page:647 | Format: PDF

BUY NOW GET DEMO REVIEWS