जैसाकि हमने पहले भी कहा कि ASP.NET Web Application में इस बात पर निर्भर करते हुए कि हम Single-Value Data-Binding कर रहे हैं या Repeated-Value Data-Binding, Data-Binding थोडा Different तरीके से काम करता है।
जब हम Single-Value Data-Binding Use करना चाहते हैं, तब हमें Data-Control की एक या अधिक Properties को Set करना होता है और सामान्यत: हम इस Initialization को Page.Load Event Handler के अन्तर्गत ही Perform कर लेते हैं।
जब हम Data-Binding को Specify कर लेते हैं, उसके बाद हमें उसे Activate करना होता है और Data-Binding को Activate करने का काम DataBind() Method द्वारा किया जाता है। इस Method को .NET Framework की Control Class में Define किया गया है। ये Method किसी Control और उसके सभी Child Controls को Automatically Bind कर देता है। इसी तरह से जब हम Repeated-Value Binding Controls के साथ प्रक्रिया कर रहे होते हैं, तब हम किसी Specific List Control के साथ DataBind() Method का प्रयोग करते हैं।
जबकि यदि हम चाहें तो अपने Current Page के लिए DataBind() Method को Call करके Page के सभी Controls को एक साथ एक ही बार में Bind कर सकते हैं और जब हम इस Method को Page के लिए Call करते हैं, तो Page के सभी Data-Binding Expressions Evaluate हो जाते हैं और Specified Value से Replace हो जाते हैं।
सामान्यत: Data-Binding के लिए हम DataBind() Method को Page.Load Event Handler में ही Call करते हैं। इसलिए यदि हम इस Method को Use करना भूल जाऐं, तो उस स्थिति में ASP.NET हमारे Page के सभी Data-Binding Expressions को Ignore कर देता है, तथा Client Web Browser को Return होने वाले Response में सभी Data-Binding Expressions के स्थान पर Empty Values Render हो जाते हैं।
Data-Binding से सम्बंधित उपरोक्तानुसार Discussed सारा Process हमने Theoretically जाना लेकिन इसे ठीक से समझने के लिए हमें कुछ Examples देखने होंगे। ताकि हम इन Data-Bindings को Practically उपयोग में लेते हुए अपना Web Application Develop कर सकें।
Using Single-Value Data-Binding
Single-Value Data-Binding, Dynamic Text को Render करने का एक Different Approach है। इसे Use करने के लिए हम हमारी .aspx File में एक Special Data-Binding Expression लिखते हैं। इस Expression का Formal Syntax निम्नानुसार होता है:
<%# expression %>
इस Statement में हम केवल किसी Valid Data-Binding Expression जैसे कि Property, Variable, Array आदि को ही Specify कर सकते हैं। जैसे:
<%# Request.Browser.Browser %>
जब हम DataBind() Method Call करते हैं, तब ये Statement Execute होते समय Currently Use किए जा रहे Web Browser के नाम को Exactly उसी जगह पर Render कर देता है, जहां हमने हमारे Webpage में इस Statement को Specify किया होता है।
इस Statement का प्रयोग करके हम हमारे किसी Function को भी अपने Current ASPX Page पर किसी Specific Location पर Call कर सकते हैं अथवा किसी Mathematical Expression को भी Specify कर सकते हैं। जैसे:
<%# GetPassword( ID ) %> <%# 10 + ( 20 * 30 ) %> <%# "Hello! " + "World" %>
यहां एक बात हमेंशा ध्यान रखनी चाहिए कि इस Data-Binding Expression को हम हमारे .aspx Page के Markup Portion में ही Use कर सकते हैं, Code-Behind File में नहीं।
किसी भी Concept को ठीक से समझने का सबसे बेहतर तरीका यही है कि उसे एक Simple Example द्वारा समझने की कोशिश की जाए। इसलिए इस Concept को समझने के लिए हम निम्नानुसार एक Example Create कर सकते हैं:
File Name: SingleValue-DataBinding.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="SingleValue-DataBinding.aspx.cs" Inherits="SingleValue_DataBinding" %> <script runat="server"> protected int Addition(int x, int y) { return x + y; } protected void Page_Load(object sender, EventArgs e) { this.DataBind(); } </script> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <h3>Total of 10 and 20 is: <%# Addition(10, 20) %></h3> </div> </form> </body> </html>
इस Code में सबसे पहले हमने Addition() नाम का एक Method Create किया है, जो दो Integer Values Accept करता है और उनका जोड Return करता है। जब हम इस Example को Run करते हैं, तो जैसे ही Page.Load Event Fire होता है, Page_Load() Event Handler Execute होता है और उसमें Specified this.DataBind() Statement Execute होता है।
चूंकि this Object हमेंशा Current Class को Represent करता है, इसलिए Current Page Class पर जितने भी Data-Binding Expressions Exist होते हैं, वे सभी Execute हो जाते हैं। परिणामस्वरूप जैसे ही उपरोक्त Example में Specified निम्न Statement Execute होता है:
<h3>Total of 10 and 20 is: <%# Addition(10, 20) %></h3>
और Resultant Output के रूप में हमें निम्नानुसार Output प्राप्त होता है:
जबकि यदि हमने हमारे Page_Load() Method में this.DataBind() Statement Specify नहीं किया होता, तो हमें प्राप्त होने वाला Resultant Output निम्नानुसार होता है:
यानी जब तक DataBind() Method Execute नहीं होता, तब तक ASP.NET Page पर किसी भी प्रकार का Binding Perform नहीं होता।
Using Repeated-Value Data-Binding
हालांकि Single-Value Data-Binding एक Optional और Ignore-to-Use Expression होता है, लेकिन Repeated-Value Binding काफी उपयोगी Option है और प्रत्येक ASP.NET Application में इसे कहीं न कहीं जरूर Use किया जाता है।
Repeated-Value Data-Binding को हमेंशा ASP.NET के List Controls व Rich Data Controls के साथ ही Use किया जाता है और इस Data-Binding को Use करने के लिए हम किसी न किसी List Control की DataSource Property को उपयोग में लेते हैं। परिणामस्वरूप जब हम DataBind() Method को Call करते हैं, तो ये List Controls Automatically DataSource Property में Specified सम्बंधित Data से Fill हो जाते हैं।
इस तरह से हम Array या DataTable जैसे Object में Stored Records की Looping करते हुए उन्हें Manually अपने List Controls में Add करने हेतु लिखे जाने वाले Repeating Codes को लिखने से बच जाते हैं।
Repeated-Value Data-Binding का प्रयोग करके हम हमारे List Controls की जरूरत के अनुसार उपयुक्त Formatting भी कर सकते हैं, जिसकी वजह से हमारा Data Manipulation and Handling का काम और भी आसान हो जाता है।
List Binding के लिए Data Expression Create करने हेतु हमें List Control को Use करना होता है, जो कि Explicitly Data-Binding को Support करता है। यानी हमें इन List Controls की DataSource Property को Appropriate Value से Fill करना होता है। ASP.NET हमें कई List Controls Provide करता है, जिन्हें हम List Binding के लिए Use कर सकते हैं। जैसे:
- ListBox, DropDownList, CheckBoxList व RadioButtonList नाम के Web Controls हमें Information के Single Field को List की तरह Specify करने की सुविधा Provide करते हैं।
- HtmlSelect Control, Server-Side HTML Control होता है जो HTML के <select> Element को Represent करता है और मूलत: ListBox Web Control की तरह ही काम करता है।
- GridView, DetailsView, FormView व ListView Controls को Rich Web Controls के नाम से जाना जाता है और ये Controls हमें Repeating List या Grid Provide करते हैं, जो कि एक ही समय पर एक से अधिक Fields के Data को सारणी की तरह Display कर सकते हैं।
उदाहरण के लिए यदि हम इनमें से किसी भी Control को किसी Single Table वाले DataSet Object के साथ Bind करते हैं, तो ये Controls उस DataSet में Exist Single Table के सारे Records को Output में Render कर देते हैं। ये Controls हमें Data-Binding के लिए Most Powerful व Flexible Options Provide करते हैं, जिन्हें Use करते हुए हम बिना कोई विशेष Program Logic Codes लिखे हुए अपना Database आधारित Web Application Develop कर सकते हैं।
Repeated-Value Data-Binding का प्रयोग करते हुए हम हमारी .aspx File में Data-Binding Expressions लिख सकते हैं या फिर हम Controls की Properties को Visual Studio के Properties Window द्वारा अथवा अन्य Visual Wizards द्वारा या फिर Code-Behind Program Logic द्वारा भी Set कर सकते हैं। जबकि Simple List Controls Use करते समय हम सामान्यत: Control की Properties को ही Set करते हैं।
Data-Binding with Simple List Controls
Data-Binding with Dictionary Collection
Data-Binding with ADO.NET
विभिन्न प्रकार के GUI Controls के साथ Data Binding करने की पूरी प्रक्रिया को Simple Examples द्वारा Step by Steps विस्तार से सीखने के लिए आप Advance ASP.NET in Hindi पुस्तक को अभी Online Order करके Download कर सकते हैं।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Advance ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Advance ASP.NET WebForms in Hindi | Page:707 | Format: PDF