常用方法有以下:

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. hdu 3061 (最大权闭合图)

    分析:城池之间有依赖关系,汇点与能获得兵力的城池连接,容量为可以获得的兵力,损耗兵力的城池与汇点连接容量为损耗的兵力,有依赖关系的城池间连边,容量为无穷大,跑网络流求出的最小割就是损耗的最小兵力,,, ...

  2. 多线程:pthread_exit,pthread_join,pthread_self

    /*exit_join_id.c*/ #include<pthread.h> #include<stdio.h> void* eji(void* agr) { printf(& ...

  3. Oracle SQL函数之转换函数To_char汇总

    TO_CHAR(x[[,c2],C3])[功能]将日期或数据转换为char数据类型[参数]x是一个date或number数据类型.c2为格式参数c3为NLS设置参数如果x为日期nlsparm=NLS_ ...

  4. RMAN数据库恢复之对数据库进行完全介质恢复

    RMAN数据库恢复之对数据库进行完全介质恢复环境:控制文件和参数文件SPFILE及归档文件.重做日志文件都在.其它数据文件丢失.恢复方法:使用之前创建的全库备份进行恢复1.删除数据文件: SQL> ...

  5. stagefright框架(四)-Video Buffer传输流程

    這篇文章將介紹Stagefright中是如何和OMX video decoder传送buffer. (1) OMXCodec會在一開始的時候透過read函式來傳送未解碼的data給decoder,並且 ...

  6. 《JavaScript 闯关记》之正则表达式

    由于本课程的核心是 JavaScript,所以本文着重讲解了「正则表达式」在 JavaScript 中的用法,并未深入「正则表达式」的具体细节.如果您尚不了解「正则表达式」,强烈推荐您先学习 正则表达 ...

  7. MVC不错的学习资料

    MVC不错的学习资料: http://www.cnblogs.com/darrenji/

  8. sql 函数 总结

    聚合函数 Avg(numeric_expr)返回integer.decimal.money.float---返回组中各值的平均值 Count(*|column_name|distinct column ...

  9. HTML5 自定义属性 data-*介绍

    在HTML5之前HTML4我们也可以自定义属性通过setAttribute去设置或者直接写在HTML标签里面那么HTML5新增data-*(*可以替换成你喜欢的任意名字)属性有什么用呢? 更便的捷操作 ...

  10. 2015.4.16-C#中ref和out的区别

    如图: 输出结果是: 上面显示的是 ref 只是地址传递,所以最初改变的也只是地址,但是如果 在给其赋值,值会随之改变;如果 在方法内直接赋值,那么输出的结果 就是现在的值,之后           ...