asp.net 跨页面传值常用方法
常用方法有以下:
1、queryString
2、form-post控件传递
3、cookie
4、application
5、session
querystring:
http://website.com/webform.aspx?name=parval&address=values
这种是带有参数的url,其中querystring:name=parval&address=values。通过这种方式,在目标页面中,用request.querystring["name"]即可获取参数值parval。
在出发页面中构建目标url
protected void Button1_Click(object sender, EventArgs e)
{
string url = "Default2.aspx?sss=" + TextBox1.Text;
Response.Redirect(url);
}
在目标页面中获取参数值
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
string s = Request.QueryString["sss"];
Label1.Text += s;
}
}
运行,这是出发页面

这是目标页面

用Server.Transfer(url)传值和Response.Redirect是一样的,不同之处就在于Transfer打开的目标页面的地址中没有queryString,也就是没有网址中的?后面这部分。
用querystring传递多个值:string url = "Default2.aspx?TextBox1=" + TextBox1.Text + "&TextBox2=" + TextBox2.Text;
querystring有以下注意点:
1、只能传递2k以内的信息,包括url地址“http://.....”。
2、获取信息的形式只能是一个字符串。
3、调用不存在的 Request.QueryString["paname"]返回的是null
4、在保证不会与其他参数重名时,可以简略写成Request["paname"]


form-post控件传递:
通过ID寻找一个web控件,control.FindControl("ID"),返回的是一个webcontrol对象,需要添加匹配的显示转换,才可以对此对象进行操作,比如:
(ListBox)Control.FindControl("ID");
这里有一点要注意,如果出发页面是通过Response.Redirect(url);跳转到目标页面,那么在目标页面中PreviousPage的值为null。通过Server.Transfer(url);来跳转,那么在目标页面中PreviousPage .IsCrossPagePostBack的值为false,因此这两种跳转方式不适合用来通过控件传值。
这里通过一个超链接来实现PostBackUrl跳转,从而实现控件传值:
这是出发页面的代码
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/Default2.aspx">使用postbackurl跳转</asp:LinkButton>
目标页面
if(PreviousPage!=null)
{
if(PreviousPage .IsCrossPagePostBack)
{
TextBox t1 = (TextBox)PreviousPage.FindControl("TextBox1");
TextBox t2 = (TextBox)PreviousPage.FindControl("TextBox2");
Label1.Text = "textbox1="+t1.Text+";textbox2="+t2.Text; }
}
注意一下页面加载的顺序,当点击链接后,程序加载到目标页面的Page_Load方法中,执行if(PreviousPage!=null)判断的时候,这时程序会跳转到出发页面去执行出发页面的Page_Load方法。如果说这次页面跳转不是通过超链接,而是通过按钮的PostBackUrl来跳转,同时这个按钮还有一个OnClick事件,那么在重新执行出发页面的Page_Load方法后,还会执行这个OnClick事件。因此如果在OnClick事件中定义按钮的PostBackUrl,在点击按钮后是不会跳转的,需要再点一次才行。至于为什么,自己去想。
cookie的传值参见关于cookie的介绍。application和session以后再讨论。
asp.net 跨页面传值常用方法的更多相关文章
- ASP.NET跨页面传值技巧[总结]
个人网站:http://www.51pansou.com .net视频下载:.net视频教程 .net源码下载:.net源码 关于页面传值的方法,我就我个人观点做了些总结,希望对大家有所帮助. 1. ...
- ASP.NET跨页面传值技巧
1 使用QueryString变量 QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用 ...
- asp.net跨页面传值
a.aspx.cs //获取a中的id HttpCookie objCookie = new HttpCookie("myCookie", id); Response.Cookie ...
- 跨页面传值之QueryString
跨页面传值常用方法 1.QueryString 2.Form-post控件传递 3.Cookies传递 4.Application传递 5.Session传递(灵活强大) 1.query传值 http ...
- 【2017-05-21】WebForm跨页面传值取值、C#服务端跳转页面、 Button的OnClientClick属性、Js中getAttribute和超链接点击弹出警示框。
一.跨页面传值和取值: 1.QueryString - url传值,地址传值 优缺点:不占用服务器内存:保密性差,传递长度有限. 通过跳转页面路径进行传值,方式: href="地址?key= ...
- WebForm跨页面传值取值、C#服务端跳转页面、 Button的OnClientClick属性和超链接点击弹出警示框
一.跨页面传值和取值: 1.QueryString - url传值,地址传值 优缺点:不占用服务器内存:保密性差,传递长度有限. 通过跳转页面路径进行传值方式: href="地址?key=v ...
- c#ASP.NET中页面传值共有这么几种方式
一.目前在ASP.NET中页面传值共有这么几种方式: 1.Response.Redirect("http://www.hao123.com",false); 目标页面和原页面可以在 ...
- ASP.NET中页面传值
一.目前在ASP.NET中页面传值共有这么几种方式: 1.表单提交, <form action= "target.aspx" method = "post&q ...
- ASP.NET之页面传值
一.目前在ASP.NET中页面传值共有这么几种方式: 1.使用QueryString变量QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全 ...
随机推荐
- LinearGradient线性渲染
import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; impor ...
- ios应用view之间数据传递的方式
对于不同的viewcontroller之间数据的共享和处理 采用代理的方式,子viewcontroller设计代理协议,并定义协议接口,父viewcontroller实现协议接口,实现子视图控制器退出 ...
- 9. iptables 配置
iptables 配置文件存放位置: [root@Demon yum.repos.d]# vim /etc/rc.d/init.d/iptables 一.只给 Centos 6.5 打开 22 ...
- 一、MP3文件概述
一.概述 MP3 文件是由帧(frame)构成的,帧是 MP3 文件最小的组成单位.MP3 的全称应为 MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts G ...
- 【SQL语句】 - 在所有存储过程中查找关键字,关键字不区分大小写 [sp_findproc]
USE [EShop]GO/****** Object: StoredProcedure [dbo].[sp_findproc] Script Date: 2015/8/19 11:05:24 *** ...
- Oracle sql语言模糊查询--like后面的通配符
关于like后面的条件,Oracle提供了四种匹配模式: 1,% :表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FR ...
- java菜鸟篇<三> Jquery弹窗插件Lhgdialog的用法( 原文搬抄+添加,方便以后查找,书签太多了)
今天带我的大神让我做个消息提示,我准备用dialog作,于是乎百度+自己动动脑子 百度原文: Lhgdialog的用法 大家都知道用js可以实现,但是在使用js实现的弹窗时得考虑很东西:浏览器的兼容. ...
- 使用runtime 实现weex 跳转原生页面
一.简述 最近项目组打算引入weex,并选定了一个页面进行试水.页面很简单,主要是获取数据渲染页面,并可以跳转到指定的页面.跟之前使用RN 相比,weex 确实要简单很多.从下图中我们可以看到,wee ...
- PHP 表单防止刷新提交的方法
当然,最直接的办法就是尽量不要使用自动提交的表单,然而,当我们需要网页主动post表单进行初始化时,就不得不面对这个问题了 -------------------------------------- ...
- 1041. Be Unique (20)
Being unique is so important to people on Mars that even their lottery is designed in a unique way. ...