网页前端设计

http://www.86y.org
feedskyQQ邮箱

搜索文章

子页调用母版属性及方法

关注我吧
 2014/7/25 13:32:24 阅读次数:2134

子页调用母版属性及方法

今天并没有看什么新鲜货,只是对以前资料的一些整理。看着看着自己觉得郁闷无比,原来很多东西我以前就已经找到了解决方法,只是没有及时总结和提起足够的重视。看了一下子页调用母版属性的方法,忽然发现以前的方法可以不同实现,实际上呢似乎关于调用不外乎2种,即调用属性和调用方法,分别加以应对:

(1)调用母版方法:在子页声明被调用页的信息,然后直接用master.function()调用。

(2)调用母版属性:在子页中通过FindControl搜索被母版页的id,调用之。

言归正传,vs2008的母版相信对于网站的设计已经占有一席之地,而调用为题应该已经是老生常谈。怎奈如此多的菜鸟如我一般前仆后继,继往开来,来者不拒,在成为老鸟的烤熟之路上艰难前行,每每解决所谓难题而欢呼雀跃,于是又进一步……

又扯远了,言归正传。

加入母版如下:test1.master

<form id="form1" runat="server">
  <asp:Label ID="Label1" runat="server" Text="hello,this is a master!"></asp:Label>
  <br />
  <div>
    <asp:contentplaceholder id="ContentPlaceHolder1" runat="server"> </asp:contentplaceholder>
  </div>
</form>

masterSon.aspx.cs(注意为public)

public void SayHello()
{
	Response.Write("大家好,我是母版页sayhello方法");
}

一、子页面调用母版方法

子页中的.aspx首部加入如下代码

<%@ MasterType VirtualPath="~/test1.master" %>

子页则直接母版的方法名调用

protected void Page_Load(object sender, EventArgs e)
{
	Master.SayHello();
}

二、子页面调用母版属性

子页采用FindControl的方法(此处是通过按钮出发事件而将调用来的母版属性显示在Label中)

protected void btnGetMaster_Click(object sender, EventArgs e)
{
	Label lbMaster = Master.FindControl("Label1") as Label;
	if (lbMaster != null)
	{
		Label2.Text = lbMaster.Text.ToString();
	}
}

其实,母版可以存在多个子版块的形式,FindControl也将变换为,事实上上面的程序也是这种的简写

Label lbMaster = Master.FindControl("ContentPlaceHolder1").FindControl("Label1") as Label;

其实在aspx.cs页面调用ascx插件时也一样,只是引用方法不同罢了!

ps:也许水平有限,未免有错误之处请大神指出。


大家有什么问题或技术上的想法可以在此与大家分享,也可以加入前端爱好者QQ群(141999928)一起学习进步:【幸凡前端技术交流群】
0

如果您觉得本文的内容对您的学习有所帮助,捐赠与共勉,支付宝(左)或微信(右)

阅读全文内容关闭