Thanks for Clickon's inputs,
Hi Alex,
As for the ASP.NET 2.0's MasterPage, it is dynamically loaded into the
concrete page which has been configured to apply that masterpage. You can
think the masterpage like a Usercontrol which loaded into the page's
control collection, the relationship is different from the class
inheritance in OOP. Also, for your requirement on accessing object, data
in concrete page through the MasterPage's codebehind code, I think it is
certainly possible. Clickon has mentioned the means that we can query the
controls through the FindControl method on page. And actually the "Page"
property of the MasterPage reference to the instance of the concrete
page(you can use the Page.GetType to verify this). So since we can get the
concrete page instance reference in MasterPage, we can access public
methods, properties (built-in or custom ones) in our master page's code.
One problem remains is the Type Casting, since the Page property is of the
System.Web.UI.Page class, if we want to access any custom property or
methods in the concrete page class, we need to do the casting. However,
it's not very convenient (and not good practice) to hardcoded concrete
page's type and casting it. One good approach is defining a common
interface which expose some properties or functions which will be useful to
the MasterPage, then our concrete page can implement this interface and
according to the detailed page structure or info. e.g:
========in master page==========
public partial class App_Master_simple : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("<br/>" + ((IHello)Page).SayHello("Steven"));
}
}
========the concrete page which applying the master page=====
public partial class concretes_newConcretePage : System.Web.UI.Page, IHello
{
.................................
#region IHello Members
public string SayHello(string name)
{
return "Hello " + name + "<br/>" + TextBox1.Text;
}
#endregion
}
We can expose control info or other custom data/properties or operations
in concrete page to master page through such interface.
Hope this helps. If there is any other ideas or questions, please feel free
to post here.
Regards,
Steven Cheng
Microsoft Online Community Support
==================================================
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
Get Secure!
www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)