C#中在内容页获取其模板页中的变量,或者值
来源:互联网 发布:js的面向对象 编辑:程序博客网 时间:2024/06/06 02:13
在CSDN的博文中看到了 muziduoxi 的文章:http://blog.csdn.net/muziduoxi/article/details/5386543
虽然里面提到的方法没有解决我的难题,但是我也是根据里面的方法想到现在所用的方法的,所以还是需要感谢
因为我要的变量初始化的时候是空的,如果使用muziduoxi的方法就只能读取到初始化时候的值,我做了个跟踪,发现有模板页的页面运行的时候是先运行本页的变量的定义→ 到模板页的变量定义→ 到本页的Page_Load方法→ 到模板页的PageLoad方法,所以如果我要获取的模板页变量是在其Page_Load中初始化的话,那么在本页Page_Load中是读取不到的,如果要获取到的话方法就是:在本页的aspx中的页面上使用:<%=(this.Master asagency_web_agency_master).systemURL %>,至于为什么是 agency_web_agency_master这个我理解的就是它把点号.换成了下划线_,其实这个名称会在你输入完 as 然后空格的时候提示你的。
具体的代码如下:
模板页有个公共变量的定义:public string systemURL = "";
然后在内容页的aspx代码中直接使用:<%=(this.Master as agency_web_agency_master).systemURL %> 就可以正常输出了。
而且不单单可以获得字段,也可以获得对象,如果模板页有一个类:public Model.gy_agencyInfo modagency = new Model.gy_agencyInfo(); 类有个字段是:systemURL
在内容页的aspx代码中直接使用:<%=(this.Master as agency_web_agency_master).modagency.systemURL %> 就可以正常输出。
为了方便自己记住 muziduoxi 的方法,特意把它粘贴到了我这里,以方便自己查看:
获取母模版页的变量和属性值:
模板页:
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) { }}
在内容页获取该值:
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 }引用模板页时,如何接收内容页(感觉应该为模板页)控件的值
TextBox myemail = (TextBox)this.Page.Master.FindControl("show").FindControl("email");
string email = myemail.Text;
这2行代码让我找了2天,我一直认为是:
TextBox myemail = (TextBox)this.Page.FindControl("email");
string email = myemail.Text;
总是一个错误:未将对象引用设置到对象的实例。
如何取得和当前页面联系的MasterPage中的变量
例如:
1. A.aspx用了一个叫MasterPage.master的母板页。
MasterPage.master.cs里定义了一个 int 型的变量 flag = 1
如何在A.aspx.cs里读出flag变量的值呢?
在 Page_Load 事件中添加如下代码:
((MasterPage)Page.Master).flag = 2; 或 int c=((MasterPage)Page.Master).flag;
也可以 (this.Master as MasterPage).flag = 2
2.下面的代码示例演示如何使用内容页访问前一个代码示例中的母版页上的公共属性 SiteName。
<%@ 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.获取和设置母版页Master中的一个控件的值
((Controls_wucTopBar)Master.FindControl("wucTopBar1")).strNavigaName = “电影频道”;
4.可以这样zu
在内容页面里加上:
<%@ MasterType VirtualPath="~/MasterPage33.master" %>
在后台代码中
protected void Page_Load(object sender, EventArgs e)
{
Master.LabelText = "现在时间:" + System.DateTime.Now.ToShortTimeString();
}
- C#中在内容页获取其模板页中的变量,或者值
- TP5 assign给模板变量赋值(或者取得参数值,在模板中显示出来)
- c#用反射获取类型,然后动态获取其值(或者设置其值)
- 在WebView中获取网页中的内容
- 在js中调用C#中的变量
- C# get或者post获取网页内容
- 在其他class或者view中获取MainActivity实例,以便调用其函数的方法:
- shell读取文件中的内容,并将其存入到变量中
- 在内容页为母版页中的div赋值并在内容页获取
- 在JS代码中获取Struts2中的返回值或者参数
- 在JS代码中获取Struts2中的返回值或者参数
- 关于获取后台数据值将其显示到radio或者select中的方法
- 在母版中设置属性,内容也中通过母版页的属性获取和赋值母版页中的div的内容。
- 在过滤器Filter中获取Response中的内容
- c++中字符数组或者字符串中的内容在VS debug环境中不能完全显示
- AutoCompleteTextView获取其内容
- asp.net页面中,在Js中绑定.cs页面类中的public或者protected变量
- 在servlet中或者在filter中获取spring容器中的bean
- 使用JSONP进行跨域的数据传递
- dos网络经典实用命令行
- DM6000处理图像的函数入口
- error C2065: “IDD_DIALOG1” : 未声明的标识符
- Git patch
- C#中在内容页获取其模板页中的变量,或者值
- 测试flash之小工具
- Linux C substring 子字符串
- poj 3414 Pots
- sicily--1145. 校门外的树
- 查看sql语句执行效率
- log4j和slf4j
- android 调用系统相机拍照 获取原图
- 值得思考的事(Linux)