有关母版页应用中注意事项

一. javascript调用控件

1. 调用客户端控件:

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

2. 调用服务器端控件:

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

 

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

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

2. 在内容页的.aspx中写入<%@ MasterType VirtualPath="~/MasterPageApplication/ParentPage.master" %><%@ MasterType VirtualPath="~/MasterPageApplication/ParentPage.master" %><%@ MasterType VirtualPath="~/MasterPageApplication/ParentPage.master" %><%@ 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到底有什么区别呢?以下是我在MSDN中找到的结果:

        Session 属性提供对 HttpSessionState 类的属性和方法的编程访问。由于 ASP.NET 页包含对 System.Web 命名空间(含有 HttpContext 类)的默认引用,因此在 .aspx 页上可以引用 HttpContext 的成员,而不需要使用对 HttpContext 的完全限定类引用。例如,可使用 Session("SessionVariable1") 获取或设置会话状态变量 SessionVariable1 的值。但是,如果要从 ASP.NET 代码隐藏模块中使用 HttpResponse 的成员,则必须在模块中包括对 System.Web 命名空间的引用,同时还要包括对当前活动的请求/响应上下文以及要使用的 System.Web 中的类的完全限定引用。例如,在代码隐藏页中,必须指定完全限定名称 HttpContext.Current.Session("SessionVariable1")

        如果未启用会话状态,则无法设置或获取会话状态值。若要为应用程序配置会话状态设置,请在 Web.config 文件中设置 sessionState 元素的 mode 属性。启用会话状态后,如果请求一个会话状态变量中不存在的值,则会返回 null

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值