In CSDN's blog post saw the Muziduoxi article: http://blog.csdn.net/muziduoxi/article/details/5386543 Although the method mentioned inside did not solve my problem, But I also think of the method according to the methods used in the present, so I still need to thank because I want to initialize the variable is empty, if the use of Muziduoxi method can only read the value of the initialization time, I did a trace, When a page that has a template page is run, it is the definition of the variable that runs this page → the variable definition of the template page → The Page_Load method → to the pageload method of the template page, so if the template page variable I want to get is initialized in its Page_Load, So in this page Page_Load is not read, if you want to get to the method is: on this page in ASPX in the use of: <%= (this. Master asagency_web_agency_master). Systemurl%> and as for why Agency_web_agency_master This I understand is that it put the dot. In fact, this name will be after you enter as And then a space to prompt you.
The specific code is as follows:
The template page has a common variable definition: public string systemurl = "";
It is then used directly in the ASPX code of the content page: <%= (this. Master as Agency_web_agency_master). Systemurl%> can be output normally.
And not only can you get the field, you can also get an object if the template page has a class: public model.gy_agencyinfo modagency = new Model.gy_agencyinfo (); Class has a field that is: Systemurl
Used directly in the ASPX code of the content page: <%= (this. Master as Agency_web_agency_master). Modagency.systemurl%> can be output normally.
In order to conveniently remember the method of Muziduoxi, specially paste it to me here, to facilitate their own view:
Get the variables and property values for the Master page: template page:
[CSharp]View Plaincopyprint?
- Public partial class MasterPage:System.Web.UI.MasterPage
- {
- public int UserId {
- get { return 342;}
- }
- public String UserName = "SHENJK";
- protected void Page_Load (object sender, EventArgs e)
- {
- }
- }
Public partial class masterpage:system.web.ui.masterpage{public int UserId { get {return 342;} } public string UserName = "SHENJK"; protected void Page_Load (object sender, EventArgs e) { }}
Get the value on the content page:
[CSharp]View Plaincopyprint?
- protected void Page_Load (object sender, EventArgs e)
- {
- PropertyInfo PL = This . Master.gettype (). GetProperty ("UserId");
- object o = pl. GetValue (This. Master, null); //o=342
- FieldInfo f = This . Master.gettype (). GetField ("UserName");
- Object O1 = F.getvalue (This. Master); //O1=SHENJK
- }
protected void Page_Load (object sender, EventArgs e) { PropertyInfo pl = this. Master.gettype (). GetProperty ("UserId"); Object o = pl. GetValue (this. Master, NULL); o=342 FieldInfo f = this. Master.gettype (). GetField ("UserName"); Object O1 = F.getvalue (this. Master); O1=SHENJK }
How to receive the value of a content page (the feeling should be a template page) control when referencing a template page
TextBox Myemail = (textbox) this. Page.Master.FindControl ("show"). FindControl ("email"); string email = myemail. Text;
This 2 lines of code let me find 2 days, I always think is:
TextBox Myemail = (textbox) this. Page.findcontrol ("email"); string email = myemail. Text;
Always an error: Object references are not set to an instance of an object.
How to get the variables in the masterpage associated with the current page
For example: 1. a.aspx used a master page called Masterpage.master. MasterPage.master.cs defines an int variable flag = 1 How do I read the value of a flag variable in A.aspx.cs? Add the following code to the Page_Load event: ((MasterPage) Pa
For example: 1. a.aspx used a master page called Masterpage.master. MasterPage.master.cs defines an int variable flag = 1 How do I read the value of a flag variable in A.aspx.cs? Add the following code to the Page_Load event: ((MasterPage) page.master). flag = 2; or int c= ((MasterPage) page.master). Flag; can also (this. Master as MasterPage). Flag = 2 2. The following code example demonstrates how to use a content page to access the public properties SiteName on the master page in the previous code example. <%@ page language= "C #" masterpagefile= "~/ Masterpage.master " title=" masterpage Example " %> <script runat= "Server" > protected void Page_Load (object sender, EventArgs e) { masterexample m = (masterexample) page.master; MyLabel. text = m.sitename; } </script> <asp:Content id= "Content1" contentplaceholderid= "ConteNtPlaceHolder1 " runat=" Server "> hello, master pages! <asp:Label runat= "Server" text= "Label" id= "MyLabel" > </asp:Label> </asp:Content> 3. Get and set the value of a control in master page master ((Controls_wuctopbar) Master.findcontrol ("WucTopBar1")). Strnaviganame = "Movie Channel"; 4. This can be Zu In the content page add: <%@ MasterType virtualpath= "~/masterpage33.master"%> protected void Page_Load in background code (object Sen Der, EventArgs e) {master.labeltext = "time Now:" + System.DateTime.Now.ToShortTimeString (); } |
In C #, in the content page, get the variables in its template page, or the value