फोटोः आलोक कुमार पाण्डे
CTO at BRAINDIGIT | MVP (Visual Studio and Development Technologies) at Microsoft Most Valuable Professional
अघिल्लो लेखमा उल्लेख गरिए अनुसार यस पटक हामी ASP.Net को server control हरूका बारेमा उदाहरण सहित चर्चा गर्नेछौं । तर त्यो भन्दा पहिले server control को बारेमा नै जान्नु जरुरी छ ।
Server controls भनेको कुनैपनि सर्भरले बुझ्न सक्ने खालका tag हरू हुन् । ASP.Net को पेज बनोट भित्र नै तयारी अवस्थामा रहेका कैयौं server control हुन्छन् जसको परिकल्पना वेबका प्रोग्रामिङ मोडलहरुलाई ‘structured’ बनाउनका लागि गरिएको हुन्छ ।
यि server control उल्लेखित विशेषताहरू रहेका छन्
१. स्वचालित state management
२. Request object को उपयोग नगरि object value सँगको सजिलो पहुँच
३. Server-side code event का प्रतिक्रियामा application हरू बनाउन सक्ने क्षमता
४. सजिलो तरिकाले पेजका लागि user interface हरू बनाउने
५. Output ब्राउजरको क्षमता अनुसार स्वचालित रुपमा customize हुने
ASP.NET page framework मा तयारी अवस्थामा रहेका control साथै नयाँ user control र custom control बनाउन सक्ने क्षमता पनि रहेको छ । यसरी बनाइएका user control र custom control ले भइरहेका control मा नयाँ क्षमताहरू थप गर्छ र एक समृद्ध user interface को निर्माण गर्दछ ।
Server control हरू तीन प्रकारका छन्
१. HTML Server Controls - Traditional HTML tags
२. Web Server Controls - New ASP.NET tags
३. Validation Server Controls - input validation का लागि
HTML Server Controls
HTML Server Control हरू runat=”server” एट्रिब्युट भएका Hypertext Markup Language (HTML) एलिमेन्ट हुन् । यिनिहरूको काम र विशेषता HTML tag कै जस्तो हुन्छ । त्यस बाहेक, HTML Server Control ले स्वचालित state management र server-side events पनि सम्भव बनाउँछन् । यसका थप विशेषताहरू तल उल्लेखित छन्
• HTML Server Control र HTML tags आपसमा one-to-one map हुन्छन् ।
• ASP.NET applications को संकलन गर्दा runat=”server” एट्रिब्युट भएका HTML Server Control हरू एक assembly मा संकलित हुन्छन् ।
• धेरैजसो Control हरूले OnServerEvenको उपयोग गर्दछन् । उदाहरण स्वरुपः control मा OnServerEvent रहेको हुन्छ ।
• कुनै विशिष्ट HTML Server Control मा कार्यान्वयन नभएका HTML tag हरू लाई पनि server side मा उपयोग गर्न सकिन्छ । तर तिनिहरू assembly भित्रको HtmlGenericControl मा पर्दछन् ।
• ASP.NET page पोस्ट गर्दा, HTML Server Control ले त्यसको value राख्दछ ।
यि सबै विशेषताहरू System.Web.UI.HtmlControls.HtmlControl क्लास मा छन् । HTML Server Control पनि यहि क्लास बाट प्रभावित भएका देखिन्छ ।
HTML Server Control उपयोग गर्नका लागि हामी तल दिइएको सिन्ट्याक्स को उपयोग गर्दछौं । उदाहरण स्वरुप यसमा HtmlInputText control को प्रयोग गरिएको छ ।
Web Server Controls
वेब कन्ट्रोल र HTML सर्भर कन्ट्रोलहरू जस्तै – button, textbox र hyperlink, एक अर्कासँग धेरै मिल्दा जुल्दा छन् । एक मात्र फरक यो हो कि वेब कन्ट्रोलमा भने केहि मानिएका property names हरू छन् । वेब सर्भर कन्ट्रोलका केही उपयोगीताहरू तल दिइएका छन् ः
• उत्पादक र डेभलोपर्सलाई सजिलो तरिकाले tools र applications बनाउन मद्धत गर्दछ र तिनै applications ले स्वचालित रुपमा user interface जेनेरेट गर्न सक्छन्
• अन्तक्र्रियात्मक वेब फारम बनाउने प्रक्रियालाई सजिलो बनाउनमा मद्धत मिल्छ । यसका लागि HTML controls का बारेमा पनि धेरै जानकारी चाहिँदैन र त्यसैले गलति हुनसक्ने सम्भावना पनि न्यून रहन्छ ।
यि सबै विशेषताहरू System.Web.UI.HtmlControls.HtmlControl क्लास मा छन् । HTML Server Control पनि यहि क्लास बाट प्रभावित भएको देखिन्छ ।
वेब सर्भरको प्रयोगका लागि तल दिइएको सिन्ट्याक्स प्रयोग गर्नुहोला (यहाँ उदाहरणस्वरुप textbox control को प्रयोग गरिएको छ) ः
Basic Web Controls
HTML server control जस्तै Basic Web Controls का पनि उस्तै खालका काम तथा विशेषताहरू रहेका छन् । त्यस्का साथै, Basic Web controls मा थप विधि, घटना र विशेषताहरु हुन्छन् जसका आधारमा तपाई प्रोग्राम गर्न सक्नुहुन्छ ।
Validation Controls
पेजका अरु control हरूमा राखिएका मान्यता (values) लाई मान्य बनाउन यस validation control को प्रयोग गरिन्छ ।
पेजमा देखाइएका ब्राउजरका योग्यताहरू अनुसार validation control ले client-side validation वा server-side validation वा दुबै गर्न सक्दछ । validation control का निम्न लिखित उपयोगिताहरू छन् ः
• मान्य (validate) गर्न खोजिएको control मा नै एक वा एक भन्दा बढि validation control को प्रयोग
• पेज फारम पेश भइसकेपछि मात्र त्यसको validation गरिने
• प्रोग्रामको तहमा नै validation गर्ने कि नगर्ने भन्ने कुरा तोक्न सकिने । यसो गर्दा तपाइँले धेरै पटक उही तथ्यहरु भर्ने झन्झट नगरि त्यसलाई रद्ध गर्न सक्नुहुन्छ ।
• validation control ले आफै client-side अथभा server-side मा validation गर्नु पर्छ कि पर्दैन भन्ने स्वचालित रुपमा पत्ता लगाउँछ
द्रस्तव्यः Postback operation हुनुभन्दा अगाडि नै client-side validation ले गलतिहरू पत्ता लगाउँछ । यसो गर्दा यदि एउटै पेजमा client-side र server-side validation control हरू छन् भने client-side validation मा समस्या देखिउना साथै आर्को स्वत रद्ध हुन्छ ।
List Controls
List control भनेको समुहमा बाँध्ने खालका विशिष्ट वेब server control हुन् । यसको मद्धतले तपाई तथ्यहरूलाई लहरबद्धरूपमा प्रस्तुत गर्न सक्नुहुन्छ ।
सबै } List control हरूले data source र data member विषेशताहरू प्रस्तुत गर्दछन् र यिनैका मद्धतले ति समुहमा बाँधिन्छन् ।
IEnumerable, ICollection, र IListSource का सहायक समुहहरूलाई मात्र List control ले समुहबद्ध गर्न सक्छ । उदाहरणका लागि तल Microsoft Visual C# .NET नमूना पेज देख्न सक्नुहुन्छ ।
यसको output पेज निम्न अनुसार हुन्छ
one
two
three
Rich Controls
ASP.NET page framework ले माथि उल्लेखित control हरूका साथै आफूलाई चाहिने काम अनुसारका control हरू पनि उपलब्ध गराउँछ जसलाई Rich Controls भनिन्छ ।
यिनिहरु धेरै HTML elements को मेल बाट बनेका हुन्छन् र कामका हिसाबले Rich Controls को विशेषता समृद्धे देखिन्छ । यसका उदाहरण स्वरुप हामी Calendar control र AdRotator control लाई लिन सक्छौं ।
User Controls
यदि कुनै समयमा हामीलाइ नयाँ कोड नबनाई हाम्रो वेब फारमको interface पुनः प्रयोग गर्नु परेमा पनि ASP.NET ले वेब फारमलाई user control मा बदलेर सो काम गर्न हामीलाई सशक्त बनाउँछ । यसरी .ascx एक्सटेन्सन भएका user control हरू एउटै वेब फारममा धेरै पटक प्रयोग गर्न सकिन्छ ।
Custom Controls
पहिले नै निर्माण गरिएका web controls का साथ साथै ASP.NET ले हामीलाई आफ्नो आवश्यकता अनुसारका custom control हरू निर्माण गर्ने सुविधा पनि प्रदान गर्दछ । तल उल्लेखित अवस्थाहरु मध्ये कुनै पनि अवस्थामा custom control हरूको निर्माण गर्नु लाभदायि हुन जान्छ ।
१. पहिले नै बनाइएका दुइ वा सो भन्दा बढि web control हरूलाई जोड्न परेमा
२. भइरहेको कन्ट्रोलको functionality थप्नु परेमा
३. भइरहेका कन्ट्रोलका सट्टामा छुट्टै नयाँ प्रकारको कन्ट्रोल चाहिएमा
आउँदो लेखमा हामी ASP.NET को states का बारेमा विस्तारमा चर्चा गर्नेछौं । कृपया हाम्रो आगामी बिहीबार प्रकाशित हुने लेख पढ्नुहोला । साथै 'डट नेट गाइड'को डिजिटल कपी खरिद गर्न चाहनु हुन्छ भने यहाँ क्लिक गर्नुहोस् ।