含有嵌套母版页的项目中从内容页修改顶层母版页的控件和属性


        1.访问控件(多一层嵌套就多一个.Master)

        ContentPlaceHolder cp= (ContentPlaceHolder)Master.Master.Master.FindControl("ContentPlaceHolder1");

        Label l1= (Label)cp.FindControl("lb1");
        l1.Text = "xxxxx";

        Label l2= (Label)Master.Master.Master.FindControl("lb2l");
        l2.Text = "xxxx";

       2.访问属性

           string test = "";

           public string Test
           {
              get { return test; }
              set { test = value; }
          }

          此属性是顶层母版页的。


        1>没有嵌套即只有一个母版页时:

                 在内容页添加<%@ MasterType VirtualPath = "~/MainPage.master" %>

                在内容页后台代码中Master.Test = "xxx";

                绑定了这个属性的控件也会相应改变.

        2>有多层嵌套时:还在考虑ing...

            找到一个解决办法:

                  以2个母版页一个内容页为例

                    顶级母版页属性

                                string mValue = "";

                                 public string MValue
                                 {
                                     get { return mValue; }
                                     set { mValue = value; }
                                  }

                   次级母版页属性

                                   string test = "";

                                   public string Test
                                    {
                                          get { return test; }
                                          set { test = value; }
                                     }
                            protected void Page_Load(object sender, EventArgs e)
                            {
                                   Master.MValue = test;
                             }

                   内容页

                             Master.Test = "内容页访问顶层母版页";

                   次级母版页要添加<%@ MasterType VirtualPath = "~/MainPage.master" %>

                   内容页要添加<%@ MasterType VirtualPath = "~/SubPage.master" %>

                  这里MainPage.master和SubPage.master分别是顶层母版页和次级母版页的名字。


                   可以解决问题。但比较蛋疼的是多层嵌套会比较麻烦。

                   肯定有更好的解决办法...




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值