首先介绍一下几种数据类型
在5中数据源绑定控件中提供了一下6种常用到的参数类型:
u Control:参数是网页中的控件的属性值。使用控件的编号、名称来确定控件的属性值。主要是针对控件的参数。
u Cookie:参数是HttpCookie对象的值。Cookie能为Web应用程序保存用户相关信息,不至于使用户信息丢失。当用户下次再访问这个的站点时,应用程序就可以检索以前保存的信息。
u Form:适用于页面之间传递参数。用Form传递参数的好处是:参数隐含传递,别人无法通过查看文件属性来看到参数的值,比较适合于在页面之间传递口令等保密参数。
u Profile:适用于保存当前用户配置文件中的属性的值。
u QueryString:同样适用用页面之间传递参数。这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在浏览器的地址栏上的,这样做很不安全,同时又不能传递对象,但是在传递的值少而安全性要求不高的情况下,这个方法还是一个不错的方案。
u Session:适用用页面之间传递参数通过浏览器来。把控件中的值存在Session变量中,然后在另一个页面中使用它,以不同页面间实现值传递的目的。但是,需要注意的是在Session变量存储过多的数据会消耗比较多的服务器资源,有时候也会造成Session值的丢失。
下面对一下QueryString参数传递和Session参数传递
A.QueryString参数传递
在WEB程序开发的过程中常常使用使用QueryString参数传递方式。QuerySting在页面间传递值是一种很老的传参机制。
使用QueryString方法的主要优点是实现起来非常简单;然而它的缺点是传递的值会显示在浏览器的地址栏里面,这样对于安全性要求较高的程序来说是很不安全的。但是在传递的值少而安全性要求不高的情况下,使用这个方法还是一个不错的。QueryString方法传递值很方便,但是这种方法不能传递对象。
使用这种方法的步骤如下:
1.启动VS2005。
2.创建两个web页面。
3.添加TextBox控件和按钮。
4.在按钮的单击事件里创建一个保存URL的字符变量。
5.在保存的URL里添加QueryString参数。
6.使用Response.Redirect重定向到上面保存的URL到Default页面。
实例代码如下所示。
源页面代码:
protected void Button1_Click(object sender, EventArgs e)
{
//添加url,里面存放两个参数,学好和姓名,传递给Default页面
string url;
url = "Default.aspx?xueh=" + TextBox1.Text + "&xingm=" + TextBox2.Text;
Response.Redirect(url);
}
目标页面代码:
protected void Page_Load(object sender, EventArgs e)
{
//使用QueryString方法接收从上个页面传递过来的参数信息,学号、姓名
Label1.Text = Label1.Text + Request.QueryString["xueh"];
Label2.Text = Label2.Text + Request.QueryString["xingm"];
}
运行结果
运行页面程序,运行结果如图11-34所示。在学号和姓名输入栏中要传递的学号和姓名。
图11-34 传值页面
单击“传递”按钮,跳转到下一个页面,显示传递的学号和姓名。如图11-35所示。
图11-35 接收页面
B.使用Session变量
在WEB程序开发的过程中另一种常用的页面传值方式是使用Session传递方式。这种方式与QueryString传值方式不同。
通常是把前一个页面的值保存在Session变量中,然后在另的页面中使用这些值。但是,需要注意的是在Session变量存储过多的数据会消耗比较多的服务器资源,所以对于不用的Session值要及时从内存中移除掉。并且长时间不用的Session值会丢失。
使用Session变量传递值的一般步骤如下:
1.启动VS2005。
2.创建两个web页面。
3.添加TextBox控件和按钮。
4.在按钮的单击事件里,把控件的值添加到session变量里。
5.使用Response.Redirect方法重定向到另一个页面Default页面。
6.在另一个页面提取session的值,在确定不需要使用该session时,要显式清除它。
实例代码如下所示。
源页面代码:
protected void Button1_Click(object sender, EventArgs e)
{
//创建两个Session变量传值,学好和姓名,传递给Default页面
Session["xueh"] = TextBox1.Text;
Session["xingm"] = TextBox2.Text;
Server.Transfer("Default.aspx");
}
目标页面代码:
protected void Page_Load(object sender, EventArgs e)
{
//在Default页面接收传递过来的参数信息,学号、姓名
Label1.Text = Label1.Text + Session["xueh"].ToString();
Label2.Text = Label2.Text + Session["xingm"].ToString();
//讲Session值从内存中移除,避免占用内存
Session.Remove("xueh");
Session.Remove("xingm");
}
运行结果
运行页面程序,运行结果如图11-36所示。在学号和姓名输入栏中要传递的学号和姓名。
图11-36 传值页面
单击“传递”按钮,跳转到下一个页面,显示传递的学号和姓名。如图11-37所示。
图11-37 接收页面