Creating UI Control Event Handlers – Continue…

Creating UI Control Event Handlers – हमारे उदाहरण में दिखाई देने वाले Single Button Control हेतु Event Handler Method Create करने के लिए हमें उपरोक्त चित्र के अनुसार “Click” Action के सामने दिखाई देने वाले Blank Space में Mouse से Double Click करना होता है:

Creating UI Control Event Handlers - ASP.NET WebForms using C# in Hindi

जैसे ही हम इस Action Section में किसी Particular Event के सामने दिखाई देने वाले Blanc Space में Double Click करते हैं, हमारे Selected Control काIDfuEu चित्रानुसार इस Black Space में Fill हो जाता है:

Creating UI Control Event Handlers - ASP.NET WebForms using C# in Hindi

साथ ही Code Behind File में इस Selected Button से सम्बंधित एक Click Event Handler Code भी Automatically Create हो जाता है, परिणामस्वरूप हमें हमारा Code Editor निम्नानुसार दिखाई देने लगता है:

Creating UI Control Event Handlers - ASP.NET WebForms using C# in Hindi

जहां हम देख सकते हैं कि btnSumbit_Click() नाम का एक Method Create हो गया है, जो कि हमारे Button को Click करने पर Fire होने वाले Click Event के Response में Execute होता है। जबकि यदि हम चाहें तो अपने .aspx File में दिखाई देने वाले Button से सम्बंधित HTML Markup में निम्‍नानुसार OnClick Event Attribute को Specify करते हुए इसी काम को Manually भी कर सकते हैं:

<ASP:Button ID=“btnSubmit” runat=”server”Text=”Submit”OnClick=”btnSubmit_Click”/>

लेकिन जब हम अपने Event Handler को Manually Specify करते हैं, तब Code Behind File में भी हमें हमारे Event Handler Method को Manually Specify करना पडता है, जिसका नाम वही होता है, जिसे हमने उपरोक्‍तानुसार OnClick Attribute में Specify किया है।

चूंकि Manual Typing में हमेंशा Mistake होने की सम्भावना रहती है, इसलिए हमें हमेंशा Visual Studio के Properties Sidebar में दिखाई देने वाले Events Button को Click करते हुए Double Click वाले Visual तरीके को ही Use करना चाहिए।

साथ ही कभी-कभी जब हम हमारी Code Behind File से किसी Event Handler को Delete करते हैं, तब उस Control के साथ Associated OnClick जैसे Event Attribute के साथ Specified नाम को भी Delete करना जरूरी होता है। अन्‍यथा इस प्रकार के Webpage को Run करते समय Exception Generate होता है।

उदाहरण के लिए यदि हम हमारी Code Behind File से उपरोक्तानुसार Process Follow करने की वजह से Automatically Generate होने वाले Event Handler Code को Remove कर दें-

protectedvoid btnSubmit_Click(object sender, EventArgs e)

 {

 }

और फिर अपने Page को Run करें, तो Output के रूप में हमें निम्न चित्रानुसार Exception Message प्राप्त होता है:

Creating UI Control Event Handlers - ASP.NET WebForms using C# in Hindi

क्योंकि जब हम Visual Studio के Visual तरीके का प्रयोग करते हुए किसी Web Control के लिए Event Handler Create करते हैं, तो Code Behind File में उस Event के लिए Event Handler Code Create होने के साथ ही .aspx File में उस Control के HTML Markup में भी एक Event Attribute Add होता है, जिसमें उस Newly Create होने वाले Event Handler का नाम Specified होता है।

लेकिन जब हम Code Behind File से किसी Event Handler Code को Manually Delete करते हैं, तो उस स्थिति में हमारी .aspx File में उस Control के HTML Markup में Specified Event Attribute के साथ Associated Event Handler का नाम अभी भी Specified रहता है। जिसकी वजह से जब ASP.NET Server इस प्रकार के Page को Run करता है, तो Server Side में हर उस Event Handler को Search करता है, जिसे Client Side के Markup में Specify किया गया है।

हमारे उदाहरण में हमने btnSubmit_Click() नाम के Event Handler Method को तो अपनी Code Behind File से Remote कर दिया है, लेकिन अपनी .aspx File के<ASP:button …> Element से OnClick Attribute व Value के रूप में Specified btnSubmit_Click नाम को Remove नहीं किया है।

परिणामस्वरूप ASP.NET Server इस Page को Run करते समय btnSubmit_Click() नाम के Method को Server Side की Code Behind File में Search करता है, लेकिन क्योंकि हम उस Event Handler Code को Manually Delete कर चुके हैं, इसलिए उसे वह Event Handler प्राप्त नहीं होता। जिसकी वजह से हमें Output के रूप में उपरोक्त चित्रानुसार Exception Message प्राप्त होता है।

इस Exception से छुटकारा पाने के लिए जरूरी है कि हम हमारी.aspx File के निम्न HTML Markup को Modify करें-

<ASP:Button ID=“btnSubmit” runat=”server”Text=”Submit”OnClick=”btnSubmit_Click”/>

और इस HTML Markup में से OnClick Attribute को निम्नानुसार Remove करें-

<ASP:Button ID=“btnSubmit” runat=”server”Text=”Submit”/>

जब हम इस OnClick Attribute को भीManually Remove कर देते हैं और अपनी Code Behind File से btnSubmit_Click() Method को भी Manually Remove करते हैं, तब Page को फिर से Run करने पर हमें हमारा ASP.NET Page Normal तरीके से Display होता है।

जबकि किसी Event Handler को Create करने के लिए जिस तरह से हम Visual Studio के Visual तरीके का प्रयोग करते हुए Properties Sidebar के Event Button को Click करते हैं तथा Event के नाम के साथ दिखाई देने वाले Blaदा Space में Double Click करते हुए Automatically Event Handler Generate करते हैं, ठीक उसी तरह से किसी Event Handler को Perfect तरीके से Delete करने के लिए भी हमें इसी Properties Sidebarको Use करना चाहिए और जिस Event Handler को Delete करना हो, उस Event के साथ दिखाई देने वाले नाम को Delete कर देने मात्र से वह Event Handler पूरी तरह से Delete हो जाता है।

उदाहरण के लिए यदि हम हमारे Newly Created btnSubmit_Click() Event Handler को Visual तरीके से Delete करना चाहें, तो हमें निम्न चित्र में दिखाई देने वाले btnSubmit_Click नाम को ही Delete करना होता है:

Creating UI Control Event Handlers - ASP.NET WebForms using C# in Hindi

जब हम किसी Control के साथ Associated Event Handler के नाम को उपरोक्त चित्र में दिखाई देने वाले Action Section से Delete कर देते हैं, उसके बाद हम हमारी Code-Behind File से उस Method को आसानी से Delete कर सकते हैं, क्योंकि यहां से Delete किया गया नाम वास्तव में .aspx File के Control के साथ Attach होने वाले OnClick जैसे Event Attribute को ही Clear करता है, जिसे हमने उपरोक्तानुसार Manually Delete किया है।

हम हमारी Code-Behind File में जितने भी Event Handler Method Create करते हैं, उन सभी की List हमें निम्न चित्रानुसार Properties Sidebar के Actions Section में निम्नानुसार दिखाई देती है:

Creating UI Control Event Handlers - ASP.NET WebForms using C# in Hindi

इसलिए जरूरी नहीं है कि Code-Behind File में Visual तरीके से Create होने वाले Event Handler Method Structure को Create करने के बाद ही उसमें Event Handler Codes लिखें। बल्कि हम हमारी Code Behind File में पहले Event Handler Create कर सकते हैं और फिर उपरोक्तानुसार तरीके से दिखाई देने वाली Event Handlers की List से किसी Particular Event Handler को किसी Particular Web Control के साथ Select करते हुए भी Associate कर सकते हैं।

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