在内容页中调用母版页控件 一些方法总结(转)
2012-01-31 18:16
519 查看
在内容页中调用母版页控件
在内容页中有个属性Master,可以通过它访问母版页。如我们要修改母版页上的标题,我们看到显示标题的那个Label的ID为Label1,在Page_Load事件中增加以下代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
((Label)Master.FindControl("Label1")).Text = "标题被修改了!";
}
运行看一下标题是否被修改。
2、是服务器控件或者凡是runat=server的控件,其ClientID在页面输出后,都跟在设计时不一样了。例如有个
<input type="text" id="txtName" runat="server" />
但输出后,却变成了
<input type="text" id="ctl00_Main_txtName" />
如果你原本在javascript里如下引用:document.getElementById("txtName");现在多半找不到了。可以沿用ASP的做法:
document.getElementById("<%=txtName.ClientID%>");
3、内容页要访问母版页上的控件不象同一页那么方便。
需要用Page.Master.FindControl();的方式,例如,
TextBox txt = (TextBox)Page.Master.FindControl(“txtName”);
假如要访问的控件是用户控件,这样写
MyCtrl myctrl = (MyCtrl)Page.Master.FindControl(“MyCtrl1”);
多半会编译出错,说缺乏MyCtrl的定义。原因是该控件在母版页上声明:
<%@ Register Src="myCtrl.ascx" TagName="myCtrl" TagPrefix="uc1" %>
一般情况下在内容页就不用再声明了。但如果要访问它就不同,也要在内容页的头部加上这一句。并没有重复声明的麻烦。
4、要支持在母版页上的控件事件怎么办?
比如说,我要在内容页支持我自己写的用户控件MyCtrl(在母版页)的OnClick事件该怎么办?总不能将代码写在母版页吧?
别忘了,事件本质是委托,我们只要在内容页添加对该事件的委托就行了。
以前1.1的时候,代码页面有Page_Init事件的代码,可2.0就不知道跑哪去了。幸而自己加上去也有效:
protected void Page_Init(object sender, EventArgs e)
{
MyCtrl myctrl = (MyCtrl)Page.Master.FindControl(“MyCtrl1”);
if (myctrl != null)
{
myCtrl.Click += new MyCtrl.ClickEventHandler(MyCtrl1_Click);
}
}
在内容页中有个属性Master,可以通过它访问母版页。如我们要修改母版页上的标题,我们看到显示标题的那个Label的ID为Label1,在Page_Load事件中增加以下代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
((Label)Master.FindControl("Label1")).Text = "标题被修改了!";
}
运行看一下标题是否被修改。
2、是服务器控件或者凡是runat=server的控件,其ClientID在页面输出后,都跟在设计时不一样了。例如有个
<input type="text" id="txtName" runat="server" />
但输出后,却变成了
<input type="text" id="ctl00_Main_txtName" />
如果你原本在javascript里如下引用:document.getElementById("txtName");现在多半找不到了。可以沿用ASP的做法:
document.getElementById("<%=txtName.ClientID%>");
3、内容页要访问母版页上的控件不象同一页那么方便。
需要用Page.Master.FindControl();的方式,例如,
TextBox txt = (TextBox)Page.Master.FindControl(“txtName”);
假如要访问的控件是用户控件,这样写
MyCtrl myctrl = (MyCtrl)Page.Master.FindControl(“MyCtrl1”);
多半会编译出错,说缺乏MyCtrl的定义。原因是该控件在母版页上声明:
<%@ Register Src="myCtrl.ascx" TagName="myCtrl" TagPrefix="uc1" %>
一般情况下在内容页就不用再声明了。但如果要访问它就不同,也要在内容页的头部加上这一句。并没有重复声明的麻烦。
4、要支持在母版页上的控件事件怎么办?
比如说,我要在内容页支持我自己写的用户控件MyCtrl(在母版页)的OnClick事件该怎么办?总不能将代码写在母版页吧?
别忘了,事件本质是委托,我们只要在内容页添加对该事件的委托就行了。
以前1.1的时候,代码页面有Page_Init事件的代码,可2.0就不知道跑哪去了。幸而自己加上去也有效:
protected void Page_Init(object sender, EventArgs e)
{
MyCtrl myctrl = (MyCtrl)Page.Master.FindControl(“MyCtrl1”);
if (myctrl != null)
{
myCtrl.Click += new MyCtrl.ClickEventHandler(MyCtrl1_Click);
}
}
相关文章推荐
- 在内容页中调用母版页控件 一些方法总结
- 内容页中调用母版页控件一些方法总结
- 内容页中调用母版页控件一些方法总结
- 在内容页中调用母版页控件 一些方法总结
- ASP.Net访问母版页(MasterPage)控件、属性、方法及母版页中调用内容页的方法
- ASP.Net访问母版页(MasterPage)控件、属性、方法及母版页中调用内容页的方法
- ASP.Net访问母版页(MasterPage)控件、属性、方法及母版页中调用内容页,获取用户自定义控件里面的子控件的方法
- 访问母版页控件、属性、方法及母版页中调用内容页的方法
- ASP.Net访问母版页(MasterPage)控件、属性、方法及母版页中调用内容页,获取用户自定义控件里面的子控件的方法
- 获取iframe中的内容、查找获取指定元素(关于用c++调用WEBBROWSER控件,使用相关接口操作web页面元素的一些方法)
- ASP.NET母版页中调用内容页的方法和web用户控件调用.aspx页面里的方法
- ASP.Net访问母版页(MasterPage)控件、属性、方法及母版页中调用内容页的方法
- 访问母版页控件、属性、方法及母版页中调用内容页的方法
- 访问母版页控件、属性、方法及母版页中调用内容页的方法
- ASP.Net访问母版页(MasterPage)控件、属性、方法及母版页中调用内容页,获取用户自定义控件里面的子控件的方法
- (转)母版页调用内容页的方法的简单实现
- 母版页调用内容页的方法的简单实现
- 在使用了母版页的内容页后,如何在javascript中调用服务器控件值
- 【COM范例】WM上获取短信内容,AcitiveX控件调用页面JS方法
- Ajax 控件 的使用 以及js调用后台方法【自己总结一下】