C#中在内容页获取其模板页中的变量,或者值
在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)
- {
- }
- }
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
- }
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;
总是一个错误:未将对象引用设置到对象的实例。
例如: 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#中在内容页获取其模板页中的变量,或者值的更多相关文章
- ThinkPhp循环出数据库中的内容并输出到模板
<foreach name='user' item='v'> //循环出数据库中的内容 对应控制器->方法中的 $this->assign('user',M('user')- ...
- Java中读取配置文件中的内容,并将其赋值给静态变量的方法
应用场景 项目开发中某个功能需要抽取成方法写成一个工具类,提供给别人使用.写过工具类的人都知道,工具类中的方法一般都是静态方法,可以直接使用类名点方法名调用, 使用很方便,比如判断某个对象是否为空的方 ...
- ASP.NET中获取Repeater模板列中LinkButton按钮事件中获取ID等
前台页面中: <asp:Repeater ID="repComment" runat="server"> <ItemTe ...
- jquery 获取 json文件内容后,将其内容显示到 下拉列表框中,再将下拉列表中的内容,显示到文本框中
<script type="text/javascript"> $(function(){ $("#huoqv").click(function() ...
- js获取gridview模板列中textbox行列的值
下面一个例子:在gridview中第一列输入数值,第二列输入数值,点击第三列的时候进行计算 求和,如果不符合标记为红色字体. 如图: 代码 : <html xmlns="http:// ...
- 网页布局中页面内容不足一屏时页脚footer固定底部
方法一:给html.body都设置100%的高度,确定body下内容设置min-height有效,然后设置主体部分min-height为100%,此时若没有header.footer则刚好完美占满全屏 ...
- textarea中的内容的获取
今天他们说为啥获取不到textarea的数值 这个问题让我很纳闷 为什么会获取不到呢? 按照逻辑来说 同样都是表单元素 怎么可能出现呢? 我就看了一眼代码 alert($("#texta ...
- Python2_实现文件中特定内容的获取
===================================================== 参考链接 Python 文本文件内容批量抽取:https://blog.csdn.net/q ...
- wpf 获取datagrid 模板列中的控件
目前采用的 方法 (网上提供的一款) public static DataGridRow GetRow(DataGrid datagrid, int columnIndex) { ...
随机推荐
- 调用bat文件执行java文件
set path=./jre7/bin--设置jre路径,可以写jre的全路径java -cp "lib/*;" -Xms256m -Xmx512m com.shentong.Ma ...
- JSP 生命周期 理解JSP底层功能的关键就是去理解它们所遵守的生命周期
JSP 生命周期 理解JSP底层功能的关键就是去理解它们所遵守的生命周期. JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成ser ...
- Unity 游戏对象消失 enable,destroy与active的区别
gameObject.SetActive(false):是否在场景中停用该物体,停用后Hierarchy窗口呈灰色,用Find函数也找不到.如果该物体有子物体,要用SetActive Recursir ...
- iOS base64加密解密
本文转载至 http://jingyan.baidu.com/article/93f9803fff45c9e0e46f5596.html 从参考资料的地址中下载GTMBase64.zip库文件包,并解 ...
- 【BZOJ4010】[HNOI2015]菜肴制作 拓扑排序
[BZOJ4010][HNOI2015]菜肴制作 Description 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高 ...
- wxwidget自定义消息处理步骤
from http://www.cppblog.com/kenlistian/archive/2009/02/06/73096.html 略有修改 wxwidget自定义消息处理步骤 自定义消息处理( ...
- 【HTML5开发系列】meta元素详解
meta元素可以用来定义文档的各种元数据.他有很多种用法,一个HTML文档可以包含多个meta元素. meta元素在HTML5中的变化 charset属性是HTML5中新增的.在HTML4中,http ...
- NOIP考前划水
NOIP考前划水 君指先跃动の光は.私の一生不変の信仰に.唯私の超電磁砲永世生き! 要开始背配置了? 3行不谢. (setq c-default-style "awk") (glo ...
- linux 中 用户管理 (composer 时不能root 遇到)
linux 是支持多用户的,可以同时多个用户在线操作,这点与 Windows 不同. 在我们项目组 操作linux 服务器时,可进行多用户管理,并赋予不同权限,下面是我学习并用的比较频繁的命令: 1. ...
- springcloud zuul 使用zuulfilter 修改请求路径和响应头
最近做项目有一个需求:一个网盘系统,文件存放在分布式文件系统中,之前的文件下载统一走的文件下载服务,现在需要在单文件下载的时候不需要走文件下载服务,而是直接访问文件系统上的路径,响应的时候修改响应头, ...