呵呵,上面就是一个引子,接下来进入正题。在现在的这个网站里,我用到了母版页。在这母版页的好处我就不赘述了,反正是省事多了。根据设计的要求,网站的导航要放在页面的左侧,【导航效果就是我弄的那个TabMenu】。我的做法是直接做成个用户控件放在母版页里,因为根据以往的规律,设计肯定还会要求当前页对应的Menu要高亮显示;做成用户控件,可以给控件添加一个属性,在调用的时候为属性赋值,用户控件可以根据这个属性来处理哪个Menu高亮显示。
想法是不错,实际做起来,就出问题了。用于以前开发中用的都是用户控件,像现在这种情况,直接在使用页面里托个TabMenu的用户控件,然后给属性赋个值,就OK了。但现在用到了母版页,问题就不一样了。可不可以,在内容也中操作母版页中的这个用户控件,动态给他的属性赋值呢?答案当然是可以。只要在内容页中加上<%@ MasterType VirtualPath="~/Index.master" %>,咱就可以访问MasterPage里的控件了。就这样,一路调试、修改下去,哈哈,终于实现了。
哎呀,表达能力太差,还是给大家看代码吧:
a.用户控件:

2.用户控件
1
protected void Page_Load(object sender, EventArgs e)
2
{
3
if (!this.IsPostBack)
4
{
5
//动态访问 导航用户控件
6
ASP.usercontrol_tabmenu_ascx tabMenu = (ASP.usercontrol_tabmenu_ascx)Master.FindControl("TabMenu1");
7
if (tabMenu != null)
8
{
9
tabMenu.AnchorID = "Service";
10
}
11
}
12
}

2

3

4

5

6

7

8

9

10

11

12

还需要注意的是:1.css的大小写[因为这个,效果显示不出来,害我调试了半天]
2.css 效果防止覆盖,因为我在站点里用到了App_Theme,本来以为将TabMenu 用到的css根代码放一块,就不会被App_Theme里的css覆盖,但结果是被覆盖了。