MasterPage中使用的几点注意事项

来源:互联网 发布:linux git 客户端 编辑:程序博客网 时间:2024/03/28 21:38

一. javascript调用控件

1. 调用客户端控件:

可以直接调用母版页或子页面的所有客户端控件(<input>)的属性。客户端控件无论是在内容页还是在母版页,它的id,name等属性值都不会发生变化。

2. 调用服务器端控件:

要注意在应用了母版页的内容页中,母版页的Form属性会变为<formname="aspnetForm"method="post"action="HomePage.aspx"id="aspnetForm">;凡是控件中带有runat="server"的控件,其id的属性值会变加上"ctl00$"(会因为控件类型不同,前面附加的不同,比如说还有可能是"ctl00_"),其name属性值亦相同。

 

二. 内容页引用母版页的成员变量值

1. 在母版页的后台页面写入public string strCon=System.Configuration.ConfigurationManager.AppSettings["ConnStr"];

2. 在内容页的.aspx中写入<%@ MasterType VirtualPath="~/MasterPageApplication/ParentPage.master" %>;

3. 在内容页的.cs中引用方法是SqlHelper.ExecuteDataset(Master.strCon, CommandType.Text,sql);

 

注意:如果在内容页要获取的母版页的值是动态改变的话,则内容页必须在Page_LoadComplete事件中获取;

         如果在母版页后台页面的page_load中给strCon赋值,在page_load外声明,则内容页获取到的值为声明时的初始化值。

 

补充,在做网页的时候,在母版页页面中写入登录和密码修改的js代码,在登录的方法中写入 HttpContext.Current.Session.Add("UserPwd", dtUser.Rows[0][1].ToString()),以便让这个session在做密码修改的时候和用户输入的密码做比较。但是在母版页的js代码中写入Session["UserPwd"].ToString()总是报错,错误提示是:未将引用对象实例化。在母版页的page_load()方法中写入string ss=Session["UserPwd"].ToString()是可以得到密码的。

在同事的帮助下,找到解决方法,就是在js方法中将Session["UserPwd"].ToString()改成HttpContext.Current.Session["UserPwd"].ToString()就可以得到密码了,但此时page_load()方法下的string ss=Session["UserPwd"].ToString()又开始报错。所以新的问题又出来了,Session与HttpContext.Current.Session到底有什么区别呢?

原创粉丝点击