MasterPage中使用的几点注意事项

一. javascript调用控件

1. 调用客户端控件:

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

2. 调用服务器端控件:

要注意在应用了母版页的内容页中,母版页的Form属性会变为<form name="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到底有什么区别呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值