常用方法有以下:

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. js的for in循环和java里的foreach循环的差别

    js里的for in循环定义例如以下: for(var variable in obj) { ... } obj能够是一个普通的js对象或者一个数组.假设obj是js对象,那么variable在遍历中 ...

  2. SQL SERVER 2005 错误:18456

    安装好SQL SERVER 2005之后,Windows身份验证无法登陆,出现18456错误.而sql server 身份验证可以用sa用户登陆. 解决办法: 用sa用户登陆,执行SQL 语句: CR ...

  3. mysql 5.5源码包安装

    注:由于mysql5.5的源码包安装与mysql之前的版本安装方法不同,故写一篇随笔记录.5.5的版本不再是./configure make make install 这里用到了cmake了,cmak ...

  4. React-Native个人信息界面

    最近在做一个小练习项目,用户登陆后需要跳转到用户登录信息界面,加班半个小时终于将界面的布局搞定.接触Rect-Native也有一段时间了,以前没有做过ios,只做过android,就布局和开发效率上来 ...

  5. iOS 将系统文字设置为中文

    在.info文件中添加  Localization native development region 键值 string   Value值:en

  6. 常用的SQL数据库语句总结

    1as 的用处 as可以对表和列取别名 在开发过程中经常遇到开始给某一个的字段去field1的名称,但后来有感觉field1字段指定不确切,于是又把此字段改成了field2,由于开始认 为field1 ...

  7. struts1:Struts配置文件初解

    struts-config.xml是Struts的核心文件.该文件可配置各种组件,包括,FormBeans,Actions,ActionMappings,全局转发GlobalForwards,数据源D ...

  8. jquery mobile 入门级实战1

    第一步:使用CDN接入jquery mobile CDN的全称是Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环 ...

  9. Lowest Common Ancestor of a Binary Search Tree、Lowest Common Ancestor of a Binary Search Tree

    1.Lowest Common Ancestor of a Binary Search Tree Total Accepted: 42225 Total Submissions: 111243 Dif ...

  10. 从汇编看c++中指向成员变量的指针(一)

    在c++中,指向类成员变量的指针存储的并不是该成员变量所在内存的地址,而仅仅是该成员变量在该类对象中相对于对象首地址的偏移量.因此,它必须绑定到某一个对象或者对象指针上面,这里的对象和对象指针,就相当 ...