博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET页面间跳转和传递数据(转)
阅读量:7028 次
发布时间:2019-06-28

本文共 1890 字,大约阅读时间需要 6 分钟。

在ASP.NET中,从一个页面到另一个页面,如何实现跨页数据传递呢?

    例如源页面Default.aspx有一个文本框(txtMsg)和一个按钮(btnOK),要求单击按钮时跳转到目标页面Target.aspx,并在目标页面显示txtMsg的文本。
    主要有以下几种方法:

 1. 设置Default.aspx的按钮btnOK的PostBackUrl属性为目标页;

    Target.aspx添加代码:
    protected void Page_Load(object sender, EventArgs e)
    {
        if (PreviousPage != null)
        {
            if (PreviousPage.IsCrossPagePostBack)
            {
                string msg = ((TextBox)PreviousPage.FindControl("txtMsg")).Text;
                Response.Write("这是跨页回发,传递的信息是:" + msg);
            }
        }
    }

  2. 使用Session

     Default.aspx:
         protected void btnOK_Click(object sender, EventArgs e)
         {
            Session["msg"] = txtMsg.Text.Trim();
            Response.Redirect("Target.aspx");
         }
     Target.aspx:
         protected void Page_Load(object sender, EventArgs e)
         {
            if(Session["msg"]!=null)
                Response.Write("这是Session传值,传递的信息是:" + Session["msg"].ToString());
         }

  3. 使用Cookie

     Default.aspx:
         protected void btnOK_Click(object sender, EventArgs e)
         {
            Response.Cookies["msg"].Value = txtMsg.Text.Trim();
            Response.Redirect("Target.aspx");
         }
     Target.aspx:
         protected void Page_Load(object sender, EventArgs e)
         {
            if(Request.Cookies["msg"]!=null)
                Response.Write("这是Cookie传值,传递的信息是:" + Request.Cookies["msg"].Value);
         }

  4. 使用QueryString

     Default.aspx:
         protected void btnOK_Click(object sender, EventArgs e)
         {
            Response.Redirect("Target.aspx?msg="+txtMsg.Text.Trim());
         }
     Target.aspx:
         protected void Page_Load(object sender, EventArgs e)
         {
            if(Request.QueryString["msg"]!=null)
                Response.Write("这是QueryString传值,传递的信息是:" + Request.QueryString["msg"].ToString());
         }

  5. 使用Transfer

     Default.aspx:
         protected void btnOK_Click(object sender, EventArgs e)
         {
            Server.Transfer("Target.aspx");
         }
         public string Msg
         {
            get {   return txtMsg.Text.Trim(); }
         }
     Target.aspx:
         protected void Page_Load(object sender, EventArgs e)
         {
            if (PreviousPage != null)
            {
                _Default f1 = (_Default)Context.Handler;
                if (f1 != null)
                    Response.Write("这是Transfer传值,传递的信息是:" + f1.Msg);
            }
         }

 原文地址 :

转载于:https://www.cnblogs.com/edison2012/archive/2012/02/29/2373508.html

你可能感兴趣的文章
Winform自定义控件实例
查看>>
Siebel NextRecord And DeleteRecord In Loops Skips Record
查看>>
batch normalization在测试时的问题
查看>>
Python时间和日期
查看>>
【BZOJ4298】[ONTAK2015]Bajtocja
查看>>
为什么C语言中int的表示范围是-32768~32767
查看>>
有关位运算的基础知识和应用
查看>>
框架dubbox的简单使用
查看>>
codevs1163访问艺术馆 树形dp
查看>>
java获取登陆用户的IP地址
查看>>
JAVA线程控制
查看>>
Java关键字final、static使用总结
查看>>
转载-Objective-C内存管理详解(含示例代码)
查看>>
uchome中模糊搜索的实现
查看>>
深入理解MVC原理
查看>>
LCD之mipi DSI接口驱动调试流程【转】
查看>>
内核中dump_stack()的实现,并在用户态模拟dump_stack()【转】
查看>>
五子棋AI的思路
查看>>
AtomicInteger和count++的比较
查看>>
为乐趣而生----禁止网页右键、复制、另存为方法
查看>>