常用方法有以下:

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 跨页面传值常用方法的更多相关文章

  1. ASP.NET跨页面传值技巧[总结]

    个人网站:http://www.51pansou.com .net视频下载:.net视频教程 .net源码下载:.net源码 关于页面传值的方法,我就我个人观点做了些总结,希望对大家有所帮助. 1.  ...

  2. ASP.NET跨页面传值技巧

      1 使用QueryString变量    QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用  ...

  3. asp.net跨页面传值

    a.aspx.cs //获取a中的id HttpCookie objCookie = new HttpCookie("myCookie", id); Response.Cookie ...

  4. 跨页面传值之QueryString

    跨页面传值常用方法 1.QueryString 2.Form-post控件传递 3.Cookies传递 4.Application传递 5.Session传递(灵活强大) 1.query传值 http ...

  5. 【2017-05-21】WebForm跨页面传值取值、C#服务端跳转页面、 Button的OnClientClick属性、Js中getAttribute和超链接点击弹出警示框。

    一.跨页面传值和取值: 1.QueryString - url传值,地址传值 优缺点:不占用服务器内存:保密性差,传递长度有限. 通过跳转页面路径进行传值,方式: href="地址?key= ...

  6. WebForm跨页面传值取值、C#服务端跳转页面、 Button的OnClientClick属性和超链接点击弹出警示框

    一.跨页面传值和取值: 1.QueryString - url传值,地址传值 优缺点:不占用服务器内存:保密性差,传递长度有限. 通过跳转页面路径进行传值方式: href="地址?key=v ...

  7. c#ASP.NET中页面传值共有这么几种方式

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.Response.Redirect("http://www.hao123.com",false); 目标页面和原页面可以在 ...

  8. ASP.NET中页面传值

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.表单提交,    <form action= "target.aspx" method = "post&q ...

  9. ASP.NET之页面传值

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.使用QueryString变量QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全 ...

随机推荐

  1. Java中基础类库使用

    Java中基础类库: 在这里我仅仅介绍几种我个人觉得会常常使用的 1:Object类中的Clone机制仅仅是对对象进行浅层次的克隆,假设须要进行深层次的克隆的话那么就要自己写(详细Clone方法请參考 ...

  2. ASP.NET MVC 常用内置验证特性

    1.[Required] : 必须输入 [Required(ErrorMessage = "请输入用户名")] 2.[StringLength] : 限制字符串长度 [String ...

  3. 什么时候会刷新备库控制文件refresh the standby database control file?

    通过合理的设置,对于Primary的绝大数操作,都是可以传递到Physical Standby,datafile的操作是通过STANDBY_FILE_MANAGEMENT参数来控制的,但是即使STAN ...

  4. NOIP2012模拟试题【奶牛晒衣服】

    1.奶牛晒衣服(dry) [问题描述] 在熊大妈英明的带领下,时针和它的同伴生下了许多牛宝宝.熊大妈决定给每个宝宝都穿上可爱的婴儿装.于是,为牛宝宝洗晒衣服就成了很不爽的事情. 圣人王担负起了这个重任 ...

  5. Gengxin讲STL系列——String

    衔接上一篇引导. 作为第一篇博客,就要大气一点. 可我好像并不知道怎么才能让自己的博客大气一点= =: 明天是我生日,自己先买个中文域名庆祝了一下…… 好了,废话说完了,结果博客也没大气到哪去……,正 ...

  6. 个人的IDE制作(vim)——适用于C++/C

    引用文章A:http://learnvimscriptthehardway.onefloweroneworld.com/ 引用介绍:初学者建议通读一遍.对VIM能有整体性的了解. 引用文章B:http ...

  7. Web服务器和动态语言如何交互--CGI&FastCGI&FPM浅谈

    一个用户的Request是如何经过Web服务器(Apache,Nginx,IIS,Light)与后端的动态语言(如PHP等)进行交互并将结果返回给用户的呢? 本文浅谈个人观点,可能有误,欢迎拍砖,共同 ...

  8. Nginx 变量漫谈(五)

    前面在 (二) 中我们已经了解到变量值容器的生命期是与请求绑定的,但是我当时有意避开了“请求”的正式定义.大家应当一直默认这里的“请求”都是指客户端发起的 HTTP 请求.其实在 Nginx 世界里有 ...

  9. Android之SurfaceView学习

    首先我们先来看下官方API对SurfaceView的介绍 SurfaceView的API介绍 Provides a dedicated drawing surface embedded inside ...

  10. system.exit(0) vs system.exit(1)

    2.解析 查看java.lang.System的源代码,我们可以找到System.exit(status)这个方法的说明,代码如下: /** * Terminates the currently ru ...