पिछले Sections में हमने जाना कि किस प्रकार से हम किसी Web Control, Page या Application Level पर किसी Theme को Apply कर सकते हैं, जिसमें हमने Manual तरीके का प्रयोग किया था। जबकि ASP.NET हमें ये सुविधा भी देता है कि हम हमारे Control, Page, Application के साथ किसी Theme को Programmatically भी Set कर सकते हैं और इस Section में हम ASP.NET के इसी Concept को विस्तार से समझेंगे।
Assigning Theme to Page
जब हम हमारे किसी Page के साथ किसी Theme को Dynamically Set करना चाहते हैं, तब हम Page Class के Theme Property को निम्नानुसार तरीके से Page_PreInit() Event Handler का प्रयोग करते हुए Use कर सकते हैं। जैसे:
protected void Page_PreInit(object sender, EventArgs e) { Page.Theme = Request.QueryString["ThemeChange"]; }
हालांकि जब हम Theme को उपरोक्तानुसार Dynamically Change करते हैं, तब इस बात का ध्यान रखना होता है कि इस काम को हमेंशा Page_PreInit या इससे पहले Fire होने वाले Event के Handler द्वारा तथा Page पर Exist किसी भी Static Control से पहले ही करना चाहिए। जबकि यदि हम Dynamic Controls को Use कर रहे होते हैं, तो उस स्थिति में इसे Controls Collection में Add करने से पहले Theme Property को Set करना जरूरी होता है।
Assigning SkinID to Controls
जिस तरह से हम किसी Page को Dynamically नया Theme Set कर सकते हैं, ठीक उसी तरह से हम किसी Specific Server Control के साथ Specific SkinID को भी Programmatically Set कर सकते हैं और इस जरूरत को भी हमें Page_PreInit अथवा इससे पहले Fire होने वाले Event के Handler में ही Set करना चाहिए। जैसे:
protected void Page_PreInit(object sender, EventArgs e) { txtFirst.SkinID = "clrRed"; }
Themes with Custom Controls
यदि हम ASP.NET का प्रयोग करते हुए कोई Custom Control Create करते हैं, तो ASP.NET 2.0 हमें ये सुविधा Provide करता है कि हम हमारे Custom Controls पर भी ASP.NET 2.0 के Themes को Apply कर सकते हैं और Exactly उसी तरह से Apply कर सकते हैं, जिस तरह से Built-In Controls पर करते हैं।
Default रूप से हमारे सभी Custom Controls Theme-Enabled ही रहते हैं, भले ही हमने उन्हें Control या WebControl Class से Inherit किया हो चाहे न किया हो। इसलिए यदि हम हमारे Custom Controls पर किसी Theme को Apply होने से Prevent करना चाहें, तो उस स्थिति में अपने Custom Control की Class में Themeable Attribute को Use करते हुए इस बात को तय करना जरूरी होता है। जैसे:
// File Name: UserControls.ascx namespace UserControls { [Themeable(false)] public class SimpleHello : Control { private string _name; public string Name { get { return _name; } set { _name = value; } } … } }
ठीक इसी तरह से हम हमारे Custom Control की किसी Individual Property को भी Theming के लिए Disable कर सकते हैं। जैसे:
// File Name: UserControls.ascx namespace UserControls { public class SimpleHello : Control { private string _name; [Themeable(false)] public string Name { get { return _name; } set { _name = value; } } … }
ASP.NET WebForms के अन्तर्गत अपने ASP.NET Application के किसी Web Control, Page या Application Level पर किसी Theme या Skins को करने से सम्बंधित और भी बहुत सारी बातें हैं, जिन्हें Step by Step विस्तार से सीखने के लिए आप इस EBook को खरीद सकते हैं।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Advance ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Advance ASP.NET WebForms in Hindi | Page:707 | Format: PDF