How to Access Master Page Control in Child Page: पिछले Post में आप देख सकते हैं कि हमने Master-Page व Content-Page दोनों में Server-Control व Web-Control को अलग-अलग नाम lblGUID व lblCPGUID से Refer किया है, जबकि यदि हम चाहें तो दोनों ही Pages में समान नाम lblGUID ID वाला Label Control Create कर सकते हैं, क्योंकि Master-Page के Label Control को Content-Page में Access करने के लिए Master Object को Use कर रहे हैं, जो कि Content-Page में Master-Page को Represent करता है।
इतना ही नहीं, जिस तरह से पिछले Example में हमने Master-Page के एक Control को Master Object के माध्यम से Content-Page में Retrieve किया है, ठीक उसी तरह से हम Master-Page में Create की गई किसी Property को भी Get/Set कर सकते हैं। इसे समझने के लिए हम हमारे Master-Page को निम्नानुसार Modify कर सकते हैं:
File Name: MasterPage.master <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> <!DOCTYPE html> <script runat="server"> string mpHeadingTitle = "BccFalna.com"; public string MasterPageHeadingTitle { get { return mpHeadingTitle; } set { mpHeadingTitle = value; } } </script> <html xmlns="http://www.w3.org/1999/xhtml"> … … </html>
जब हम हमारे Master-Page को उपरोक्तानुसार तरीके से Modify करते हुए उसमें MasterPageHeadingTitle नाम की Property Specify करते हैं, इस Property को Master-Page में Use करने के लिए हम निम्नानुसार Statement लिख सकते हैं:
<%= MasterPageHeadingTitle %>
लेकिन यदि हम चाहें तो इस Property को Content-Page में भी Access and Manipulate कर सकते हैं। मानलो कि हम हमारे Default.aspx Content-Page में Master-Page की इस Property को नए Title से Set करना चाहते हैं। इस जरूरत को पूरा करने के लिए हमारे Content-Page को निम्नानुसार Modify कर सकते हैं:
File Name: Default.aspx <%@ Page Title="Content Page" Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ MasterType VirtualPath="~/MasterPage.master" %> <script runat="server"> protected void btnSubmit_Click(object sender, EventArgs e) { lblHello.InnerHtml = "<h3>Hello! " + txtName.Text + " How are you?</h3>"; } </script> <asp:Content ID="Content1" runat="server" contentplaceholderid="cphLeft"> <form id="form1" runat="server"> <asp:Label ID="lblName" runat="server" Text=""></asp:Label> <asp:TextBox ID="txtName" runat="server"></asp:TextBox> <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" /> </form> </asp:Content> <asp:Content ID="Content2" runat="server" contentplaceholderid="cphRitht"> <span id="lblHello" runat="server">Hello! How are you?</span> <h3>Title of MasterPage <%= Master.MasterPageHeadingTitle %></h3> </asp:Content>
अब जब हम इस Content-Page को Run करते हैं, तो इस बार हमें हमारा Output निम्नानुसार दिखाई देता है:
जहां हम Master-Page में Set किए गए MasterPageHeadingTitle नाम की Property में Stored मान को Content Area में देख सकते हैं और हम इस Content-Page में Master-Page की Property को इसलिए देख पा रहे हैं क्योंकि हमने हमारे Content-Page में निम्नानुसार Markup Specify किया है:
<h3>Title of MasterPage <%= Master.MasterPageHeadingTitle %></h3>
जिसमें Master Object Master-Page को Represent करता है और इस Master-Page Object में Defined Property को Content-Page में Access करने के लिए हम इसकी MasterPageHeadingTitle Property को Access कर सकते हैं।
लेकिन Content-Page में हम Master-Page में Defined किसी Property को तभी Access कर सकते हैं, जबकि हमने हमारे Content-Page में निम्नानुसार MasterType Directive Statement के माध्यम से इस बात को Specify किया हो, कि हम Master-Page के किस Type को Content-Page में Access करना चाहते हैं और उस Master-Page का नाम व Location क्या है:
<%@ MasterType VirtualPath="~/MasterPage.master" %>
जिस तरह से हमने उपरोक्त Example में Master-Page की Property को Content-Page में Access किया है, ठीक उसी तरह से हम Master-Page में Defined किसी Public Method व Data Members को भी Access कर सकते हैं।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Advance ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Advance ASP.NET WebForms in Hindi | Page:707 | Format: PDF