您的位置:首页 > 其它

页面间传值

2014-03-13 17:05 141 查看
1. Query 方法

当你用超链接或Respone.Redirect 从一个页面跳转到另一个页面,可以用这种方式传值

源页面: http://url? field=value 或 Respone.Redirect("page.aspx?field=value)

目标页面: string value = Request.QueryString("field");

注: 这种方式不完全,如有敏感数据,请别用这种方式

2. HTTP Post (待研!!)

如果源页面用POST 方式提交调整到目标页面,在目标页面可以从Form 集合中 获取源页面POST 的值

void Page_Load(object sender, EventArgs e)
{
System.Text.StringBuilder displayValues =
new System.Text.StringBuilder();
System.Collections.Specialized.NameValueCollection
postedValues = Request.Form;
String nextKey;
for(int i = 0; i < postedValues.AllKeys.Length; i++)
{
nextKey = postedValues.AllKeys[i];
if(nextKey.Substring(0, 2) != "__")
{
displayValues.Append("<br>");
displayValues.Append(nextKey);
displayValues.Append(" = ");
displayValues.Append(postedValues[i]);
}
}
Label1.Text = displayValues.ToString();
}


3. Session

Session 这种方式会占用web 服务器的内存, 如果明确知道这个Session 的生存期, 则可以用这个方法, Session 可以存储一个对象

源页面: Session["field"]=value

目标页面: string value = (string)Session["field"]

需要在目标页面强制转换类型。

4. Public property(公共属性)

在源页面声明公共属性, 在目标页面访问

源页面:

public String Field
{
get; set;
}


然后用Server.Transfer("TargetPage.aspx") 跳转到目标页面

目标页面:

添加一个页面指令, 指向源页面

<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %>

用 PreviousPage 属性访问源页面的公共属性

string value = PreviousPage.Field


5. 在目标页面访问源页面上的控件

参考4, 并用 FindControl 方法

PreviousPage.FindControl
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: