子页与母版面间的通信
1、子页访问母版页的控件;
法一:通过Master对象的方法FindControl方法查找控件,并转换相应控件,比如改变ID为Button1的按钮控件的文本,如下代码---
(Master.FindControl("Button1") as Button).Text = "ddd";
其中as Button完成转换。代码要在事件中完成,如Page_Load,按钮点击等事件。
页面与另一个页面间的通信
1、Session对象实现数据传递;
Session存在于同一网站中,不同的页面都能够使用,建立不同页面间的连接。
一般是通过.cs中的事件来操作;例如,实现A.aspx与B.aspx页面间的传递,
A.aspx.cs中代码:
protected void Page_Load(object sender, EventArgs e)//这里可能是其他事件,比如按钮事件等
{
Session["name"]="要传递的数据";
Response.Redirect("B.aspx");//跳转到B页面
}
B.aspx.cs中的响应代码
protected void Page_Load(object sender, EventArgs e)//这里可能是其他事件,比如按钮事件等
{
try
{
var des=Session["name"].Tostring();//这里可能转变为其他类型数据并传递给目标,目标可以是控件
Session.Remove("name");//使用后显式去除
}
catch{}//这里一定要用try catch组合,因为B页面不是由A页面跳转而是自己第一次载入时会提示“System.NullReferenceException: 未将对象引用设置到对象的实例”错误
}
出现的一个问题:
也就是当两个子页引用同一个母版页,但是两个子页又不在同一个文件夹下时,这时母版页又引用其他外部文件时,就出现其中一个子页显示正常而另一个子页显示不正常的现象,解决办法就是让母版页引用外部文件时使用全路径,