Making Page Dynamic Using Code-Behind File – Inline Code Blocks उस स्थिति में काफी उपयोगी साबित होते हैं, जब हमारा ASP.NET Webpage काफी Simple होता है या जब हमारे Webpage में काफी कम Dynamic Content होते हैं।
विशेष रूप से Inline Code उस समय उपयोगी होते हैं, जब हम HTML Element के Attributes को Set करना चाहते हैं, जैसाकि पिछले Section में <img /> Element के Attributes को Setup किया है या फिर हम Inline Code Blocks को तब Use करते हैं, जब हमें Inline Code Block द्वारा Generate होने वाले मानों को किसी JavaScript File में Pass करना होता है।
लेकिन Inline Code Blocks को पूरी तरह से Control करते हुए Webpages की Functionalities को Extend करना काफी असुविधाजनक होता है, क्योंकि हमारा Program Logic पूरे Webpage में फैला हुआ होता है।
इसलिए अपने ASP.NET Web Application को ज्यादा बेहतर तरीके से Control करने के लिए ASP.NET Framework हमें हमारे Webpage के Program Logic को एक अलग File के रूप में लिखने की सुविधा Provide करता है।
इस अलग से Create की जाने वाली Program Logic File को Code-Behind File के नाम से जाना जाता है और इस Code-Behind File में Specify की जाने वाली Class को Code-Behind Class नाम से Refer किया जाता है।
Preparing Page for Code-Behind File
जिस तरह से एक Simple Static ASP Webpage को Dynamic Webpage में Convert करने के लिए पिछले Section में हमने File के Extension को Change करके.aspx किया था तथा Webpage में Page Directive को Specify किया था। उसी तरह से जब हम हमारे .aspx Extension वाले Dynamic Webpage के लिए Code-Behind File Create करना चाहते हैं, तब भी हमें Page Directive को ही Modify करना होता है, ताकि ASP.NET Server को इस बात का Instruction दिया जा सके कि Current ASP.NET Webpage को Dynamic बनाने के लिए हम एक Code-Behind File के माध्यम से Dynamic Content Generate करेंगे।
Setting Page Directive
जब हम Code-Behind File के माध्यम से Dynamic Content Generate करना चाहते हैं, तब हमें हमारे ASP.NET Webpage में निम्नानुसार तरीके से Page Directive को Modify करना होता है:
[code] <%@ Page CodeFile="Default.aspx.cs" Inherits="WorkingWithWebpages.CodeBehind" %> [/code]
जैसाकि इस Page Directive Statement में हम देख सकते हैं कि हमने इस Statement में CodeFile व Inherits नाम के दो एक Attributes Specify किए हैं।
पहले Attribute के रूप में Specified CodeFile Attribute, ASP.NET Server को उस File के नाम की जानकारी देता है, जिसमें Current Webpage से सम्बंधित Program Logic को लिखा गया होता है।
Code-Behind File का नाम Specify करने के लिए Microsoft एक Naming Convention Use करता है, जिसके अन्तर्गत Code-Behind File का नाम .cs Extension के साथ वही नाम होता है, जो नाम Webpage File का होता है।
चूंकि हमारे उदाहरण के ASP.NET Webpage File का नाम Default.aspx है, इसलिए इस Convention के अनुसार हमारी Code-Behind File का नाम Default.aspx.cs होना चाहिए, क्योंकि हम हमारे Program Logic लिखने के लिए C# Programming Language Syntax को Use कर रहे हैं। जबकि यदि हम Visual Basic Programming Language Syntax को Use करते, तो हमारी Code-Behind File का नाम Default.aspx.vb होता।
दूसरे Attribute के रूप में Specified Inherits Attribute, ASP.NET Web Server को CodeFile में Exist Classes में से उस Class की Information देता है, जिसमें Current Webpage में Use किए जाने वाले Program Logic को Specify किया गया होता है, क्योंकि एक ही CodeFile में एक से ज्यादा Classes को Define किया गया हो सकता है।
यानी यदि हम हमारे उदाहरण के आधार पर समझें तो हम Default.aspx.cs नाम की Code-Behind File में एक से ज्यादा Classes को Define कर सकते हैं, जबकि अलग-अलग Classes में अलग-अलग ASP.NET Webpages के लिए Program Logic को Specify किया गया हो सकता है। इस स्थिति में Current Webpage के लिए लिखा जाने वाला Program Logic Code किस Code-Behind File की किस Class में लिखा गया है, इस बात का Instruction Inherit Attribute द्वारा दिया जाना होता है।
Inherit Attribute में Set की जाने वाली Class Information को Specify करने के लिए भी Microsoft एक Naming Convention Use करता है, जिसके अन्तर्गत हमारे Project का नाम एक Namespace की तरह Use होता है। जबकि हम जिस Webpage के लिए Program Logic Define करना चाहते हैं, उसके लिए Code-Behind File में उसी नाम का Class Define करते हैं, जो नाम हमारे Webpage का होता है।
इस Convention को यदि हम हमारे Example के आधार पर समझें, तो क्योंकि Default.aspx.cs Code-Behind File में हम Default.aspx Webpage के लिए Program Logic Define करना चाहते हैं, जो कि WorkingWithWebpages नाम के Project में Exist है।
इसलिए Inherit Attribute में Set की जाने वाली Class का नाम WorkingWithWebpages.Default होना चाहिए, जहां WorkingWithWebpages हमारे Project के Namespace को Represent कर रहा है जबकि Default हमारी उस Class का नाम है, जिसमें Default.aspx Webpage के लिए Program Logic लिखा गया है।
जब हम Code-Behind File को Use करते हैं, तब हमें Page Directive में Language Attribute को Specify करने की जरूरत नहीं होती है क्योंकि हम CodeFile Attribute में जो File Name Specify करते हैं, उसके Extension के आधार पर ASP.NET Server स्वयं इस बात का पता लगा लेता है कि Current Webpage में किस Programming Language Syntax को Use किया जा रहा है।
Assigning Element IDs
जब हम Code-Behind File Use करते हुए Program Logic लिखते हैं, तो Webpage पर Use किए जाने वाले उन HTML Elements में id Attribute को Specify करना जरूरी होता है, जिनके साथ हम हमारी Code-Behind File में लिखे गए Program Logic के माध्यम से Interaction करते हुए Generate होने वाले Dynamic Content को Render करना चाहते हैं।
id Attribute में Specify किया जाने वाला नाम हर HTML Element को Webpage पर Uniquely Identify करने के लिए उपयोगी होता है, इसलिए किसी Webpage पर किसी HTML Element के लिए id Attribute को एक से ज्यादा बार Specify नहीं किया जाता। साथ ही Microsoft Convention के अनुसार हर id Attribute में Specify किया जाने वाला नाम camelCase में Specify किया जाना होता है।
यानी यदि id Attribute में Specify किया गया नाम एक से ज्यादा Words का हो, तो पहले Word का पहला Letter Small Case होना चाहिए जबकि अन्य सभी शब्दों का पहला Letter Capital Case में होना चाहिए तथा सभी Words आपस में Connected होने चाहिए। जैसे:
populationOfTheWorld
basicSalary
क्योंकि id Attribute में हम जो नाम Specify करते हैं, उन नामों को ASP.NET Server द्वारा Generate की जाने वाली Temporary Class में Fields के रूप में Use किया जाता है और camelCase, Field Names Specify करने का एक Standard Format है।
id Attribute के साथ ही हमें हर उस HTML Element के साथ runat=”server” Attribute को भी Specify करना होता है, जिसे हम Program Logic द्वारा Web Server पर Access व Manipulate करना चाहते हैं।
यदि हम इस Attribute को Specify नहीं करते अथवा इसी तरह से “server” Value के साथ Specify नहीं करते, तो ASP.NET Server इस प्रकार के HTML Element को Server Side में Code-Behind File में Specified Code द्वारा Access करने में सक्षम नहीं होता। परिणामस्वरूप उसे Ignore कर देता है।
इस तरह से अब यदि हम हमारे Default.aspx Page को Code-Behind File के लिए Use होने हेतु पूरी तरह से Modify करें यानी Page Directive व अपनी जरूरत के अनुसार HTML Elements को Modify करें, तो हमारा Default.aspx Page कुछ निम्नानुसार हो सकता है:
[code] File Name:Default.aspx <%@ Page CodeFile="Default.aspx.cs" Inherits="WorkingWithWebpages.Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/x html"> <head> <title id=“pageTitle" runat="server"></title> </head> <body> <h1>Following are Dynamic Headings</h1> <div id=“dynamicHeadings"></div> <h1>Following is an Image</h1> <div> <img id=“imgBCL" runat="server"/> </div> <h1>Following is a Link of 2ndHTMLPage</h1> <div> <a id=“secondPageLink" runat="server"/> </div> </body> </html> [/code]
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Core ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Core ASP.NET WebForms in Hindi | Page:647 | Format: PDF