选择具有PostBackUrl属性的三个控件Button、LinkButton、ImageButton。PostBackUrl属性的值就是投递的页面URL。

要在接收页面按对象的方式接收投递页面的表单中的值有两种方式:

1、PreviousPage.FindControl(“控件变量名”),这个方法返回的是Control类型的变量(对象),假设这个控件对象是TextBox只要强制转换就可以访问它的属性

Demo:

打开vs2005/vs2008新建->网站->ASP.NET,创建后在默认的Default.aspx中设计如图:

打开源:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
        <asp:Button ID="btnSubmit"  runat="server" Text="传递数据" />
    </div>
    </form>
</body>
</html>

新建web窗体NextPage.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="NexPage.aspx.cs" Inherits="NexPage" %>
<%@ PreviousPageType VirtualPath="~/Default.aspx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
    </div>
    </form>
</body>
</html>

打开NextPage.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class NexPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Control control = (TextBox)PreviousPage.FindControl("txtUserName");
        string conent = control.Text;
    }
}

2、在原始页面(投递页)中加入要在被投递页访问的表单元素对象的相应属性,就可以在被投递页自如的访问了,这看起来很奇怪,为什么你会感觉奇怪呢?这是因为你很容易忘记页面是一个类,而你要访问的控件只不过是类中的一个私有字段,给一个类中的私有字段加一个公开的属性是再自然不过的事情。

Demo:

打开vs2005/vs2008新建->网站->ASP.NET,创建后在默认的Default.aspx中设计如图:

这是查看源:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
        <asp:Button ID="btnSubmit" PostBackUrl="~/NextPage.aspx" runat="server" Text="传递数据" />
    </div>
    </form>
</body>
</html>

然后再打开Default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{

  //属性
    public TextBox TxtUserName
    {
        get { return this.txtUserName; }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
       
    }
}

在资源管理器中添加新项中添加web窗体NextPage.aspx添加PreviousPageType 指令

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="NextPage.aspx.cs" Inherits="NextPage" %>
<%@ PreviousPageType VirtualPath = "~/Default.aspx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
    </div>
    </form>
</body>
</html>

打开NextPage.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class NextPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (this.PreviousPage != null)
        {//判断PreviousPage是否存在
            if (this.PreviousPage.IsCrossPagePostBack)
            {//判断页面是否跨页传递

string conent = PreviousPage.TxtUserName.Text;//获取值
                //将值输出
                Response.Write(conent);
            }
        }
       
    }
}

处理跨页投递的代码面临着一种风险,如果请求不是由投递页发送过来的,那么代码访问的对象并不纯在,这将产生一个异常,使用IsCrossPagePostBack属性可以区别上述情形,此属性在投递页面属于Page对象Page.IsCrossPagePostBack(本页是否参与到跨页投递),在被投递页面访问时是这样的:PreviousPage.IsCrossPagePostBack(请求是否是来自投递页)
还要注意的一点是要检查一下PreviousPage是否存在this.PreviousPage  = = null

转载于:https://www.cnblogs.com/scsuns520/archive/2009/12/22/1630101.html

跨页数据传递的两种方式相关推荐

  1. Android页面数据传递的两种方式

    在android中实现页面中数据的传递有两种方式: 1:第一种数据传递的方式是通过inputExtra方法来进行数据的传递的 2:第二中方法是通过bundle的方法来实现数据的传递的 接下来我们首先来 ...

  2. fragment与activity之间的信息传递的两种方式

    因为Fragment和Activity一样是具有生命周期,不是一般的bean通过构造函数传值,会造成异常. fragment与activity之间的信息传递的两种方式: 1.第一种方式,也是最常用的方 ...

  3. docker容器运行mysql持久化_docker容器实现数据持久化的两种方式及其区别

    前言 这篇博文是我对docker实现数据持久化几种方式的特征进行一个总结. 在docker中,它的存储文件系统是在dockerhost上原有的xfs或ext4架设了一层文件系统:overlay2(将此 ...

  4. JPA踩坑笔记(一) - 数据查询的两种方式

    本文介绍一下JPA常见的两种查询方式. 注:数据库为Oracle 1.前置准备 1.引入jar包 使用JPA,首先引入jar包,一个是JPA,另一个是数据库驱动,我使用的是Oracle数据库. < ...

  5. 【javaWeb】前后端传递数据交互的两种方式

    一.使用struct2的方法set及get 1.在jsp中直接定义定义form表单 <form id="formid" name= "myform" me ...

  6. 应用系统之间数据传递的几种方式

    本文转载自sina_blog(siangzhang) 随着近年来SOA(面向服务技术架构)的兴起,越来越多的应用系统开始进行分布式的设计和部署. 系统由原来单一的技术架构变成面向服务的多系统架构. 原 ...

  7. 前端后端数据传递的几种方式

    记录一下前端不同形式传递数据,后端的接收的方式 1. form表单 <form action="/api/user/add" method="POST"& ...

  8. redis数据持久化的两种方式

    1,AOF AOF持久化以日志的形式记录服务器所处理的每一个写.删除操作,查询操作不会记录,以文本的方式append记录,可以打开文件看到详细的操作记录.(相同数量的数据集而言,AOF文件通常要大于R ...

  9. SAP CRM和C4C数据同步的两种方式概述:SAP PI和HCI

    SAP Cloud for Customer(C4C)和SAP其他传统产品进行数据同步的方式,如下图所示,可以使用SAP Netweaver Process Integration或者SAP HANA ...

最新文章

  1. 接口测试——postman
  2. [代码]ural 1655 Somali Pirates
  3. 关于拦截hao123页面广告的自定义规则
  4. 每天一道LeetCode-----给定一个矩阵,如果某个元素是0,就将所在行所在列上所有元素否置0
  5. java学习中,instanceof 关键字 和 final 关键字、值的传递(java 学习中的小记录)...
  6. jquery IE中同一个url第二次AJAX调用无法触发
  7. 哈希值 是什么?哈希值是什么东西啊?具体怎么识别?怎么用?
  8. Java游戏实验报告_java俄罗斯方块游戏实验报告.doc
  9. es 多索引联合查询_ES 的跨索引查询详细讲解
  10. D3D9学习笔记之精灵变换篇
  11. Android自定义控件--仿安全卫士中的一键加速【圆形进度条】
  12. 使用 Laragon 在 Windows 中搭建 PHP开发环境及常见问题解决
  13. 【红帽rhcsa基础命令】
  14. connection_reset -101
  15. Tello无人机的使用笔记之dji-sdk/Tello-Python
  16. 玩转AR,让电商营销锦上添花
  17. 《那些年啊,那些事——一个程序员的奋斗史》——14
  18. php输出语句,php中输出语句有哪些?
  19. 项目管理,用SAP还是8thManage?
  20. 微信小程序手机软键盘距离input输入框位置

热门文章

  1. javascript --- js中的作用域 变量提升
  2. 自己搭建的CISCO实验环境
  3. MongoDB复制集技术
  4. LintCode: 3 Sum
  5. 自然语言0_nltk中文使用和学习资料汇总
  6. py文件转exe时包含paramiko模块出错解决方法
  7. Qt SD卡 文件系统挂载、文件预览
  8. CSS3 2D Transform
  9. 探索云计算、大数据的特色化应用之路
  10. 传说中的window8 的种子