子页调用母版页属性和方法(转)

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

         (1)调用母版方法:在子页声明被调用页的信息(感觉是做个C语言中的指针),然后直接用master.XXXX()调用。

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

ps:也许水平有限,未免有错误之处

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

        又扯远了,加入母版如下:

        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("hello,everyone!I am a fresh chicken.");
    }

 

首先呢,是调用母版方法 :

        子页中的.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;

转载于:https://www.cnblogs.com/BlogShen/archive/2012/06/02/2531767.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值